Combatendo envio de spam em scripts PHP

Standard

Insira sempre o código abaixo no início de seus scripts com forms:

// Proteção contra injeção de SPAM
foreach ($_POST as $j =>$value) {
if (stristr($value,”Content-Type”)) {
header(“HTTP/1.0 403 Forbidden”);
exit;
}
}

Este também:

// Mais uma proteção contra SPAM
if ( preg_match( “/bcc:|Content-Type:/i”, implode( $_POST ) ) ){ exit; }


Também valide entradas de email com expressão regular:

// Verificando se o email é válido
if  (!eregi(“^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$”, $_POST[’email’])) {
die(“email inválido”);
}

É isso!

PHP: Abrir arquivo, localizar termo, sobrescrever e sair.

Standard

As dicas aqui, EXIGEM que você tenha lido o post anterior de inserir texto ao rodapé de página, POIS todos os parâmetros de “preparo do terreno são o mesmo”.

Hoje estava queimando as pestanas para localizar um termo dentro de 6166 arquivos, substituir este termo por outro e sair do arquivo de forma “insana”. Segue script MASTIGADINHO:

<?
$contador = 6166;
$i = 0;
$linha = file(‘ver.txt’);
while( $i <= $contador )
{
if(file_exists($linha[$i]))
{
echo “existe”;
}
else
{
echo “nao existe”;
}

if(is_writable($linha[$i]))
{
echo ‘ permite escrita’;
echo ‘</br>’;
}
echo “$linha[$i]”;
//file_put_contents($linha[$i], $conteudo, FILE_APPEND);
$linha[$i] = trim($linha[$i]);

$open = fopen(trim($linha[$i]), ‘r+’);
$file = fread($open, filesize(trim($linha[$i])));
$open = fopen($linha[$i], ‘w+’);

$arquivo_alt = str_replace(‘UTF-8’, ‘ISO-8859-1’, $file);
fwrite($open, $arquivo_alt);

if(!$open)
{
echo “o arquivo $linha[$i] nao abre”;
exit();
}

fclose($open);
$i++;
}

?>

#################

A única coisa interessante está aqui:

$open = fopen(trim($linha[$i]), ‘r+’);
$file = fread($open, filesize(trim($linha[$i])));
$open = fopen($linha[$i], ‘w+’);

$arquivo_alt = str_replace(‘UTF-8’, ‘ISO-8859-1’, $file);
fwrite($open, $arquivo_alt);

Observe o seguinte -> linha 1 deste exemplo: abre o arquivo (trim remove espaços em branco) com poder de leitura e escrita e coloca o ponteiro no início do arquivo.

linha 2: usa fread para ler o arquivo que tem permissão de escrita e leitura com ponteiro no início e pega o tamanho do arquivo.

$arquivo_alt = str_replace(‘UTF-8’, ‘ISO-8859-1’, $file);
fwrite($open, $arquivo_alt);

linha 3: abre o arquivo com poder de escrita e coloca o ponteiro no início do arquivo.

Abre o arquivo ($file), procura por UTF-8, substitui por ISO… e confirma a escrita com a função fwrite. Os demais passos estão contidos no post anterior.