Мой предыдущий вопрос о StackOverflow был о том, что кто-то посылал мне сотни спам-писем каждые несколько часов. Теперь я исправил сценарий на стороне сервера, но на следующее утро я все еще получил 30 электронных писем или что-то вроде этого, и моя хостинговая компания дала мне новый пароль для моего FTP и переместила мои индексные файлы на резервную карту (веб-сайт отключен), они сказали, что это был взломан из-за подозрительного сценария ниже. Они сказали: «Это часто происходит с помощью просочившегося скрипта на вашем сайте, скрипта, который« устарел ». Что это значит? Они говорят в электронном письме, что есть что-то с этим файлом скрипта. Что невозможно взломать правильно потому что я использовал reCaptcha на стороне сервера, чего-то не хватает?
<?php
if(isset($_POST['g-recaptcha-response'])){
$captcha=$_POST['g-recaptcha-response'];
}
/* OUTCOMMENTED CODE BELOW DOESN'T LET FORM SEND IF EVERYTHING IS CHECKED????
if(!$captcha){
echo '<h2>Check captcha .</h2>';
exit;
}*/
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=(SECRETKEY)&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
if($response.success==false)
{
echo '<span id="status" style="font-size:1vmax;color:red;">ReCaptcha ERROR</span>';
}else
{
if( isset($_POST['n']) && isset($_POST['e']) && isset($_POST['mn']) &&
isset($_POST['m']) ){
$n = $_POST['n']; // HINT: use preg_replace() to filter the data
$e = $_POST['e'];
$mn = $_POST['mn'];
$m = nl2br($_POST['m']);
$to = "gesternl@gester.nl";
$from = $e;
$subject = 'Contact Formulier-eng';
$message = '<b>Naam:</b> '.$n.' <br><b>Email:</b> '.$e.' <br><b>Mobiel-nummer:</b> '.$mn.' <p>'.$m.'</p>';
$headers = "Van: $from\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
if( mail($to, $subject, $message, $headers) ){
echo "success";
} else {
echo "The server failed to send a message. Please try again later. Thank you!";
}
}
}
?>
Я просто загрузил его снова, чтобы посмотреть, что произойдет сейчас. Может кто-нибудь, пожалуйста, помогите мне сделать этот файл безопасным для хакера. Никто действительно не помог в предыдущем вопросе, а только дал совет без кода (а я нуби).
(некомментированный код в строке 8 не работает, что я не понимаю, кто-то знает, почему, может быть, кто-то может взломать его?)
И да, код в HTML для recaptcha хорошо связан с открытым ключом