我之前在 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 = "[email protected] /cdn-cgi/l/email-protection";
$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 中的验证码代码与公钥有很好的链接
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=(SECRETKEY)&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
if($response.success==false)
不幸的是,这段代码是一些废话,它已经出现在很多(糟糕的)教程中。它不提供任何保护——条件总是错误的,因为$response.success
被解释为连接常量success
reCaptcha API 返回的 API 响应。这将导致验证码始终被视为有效,无论用户的输入如何。
使用 Google reCaptcha 库验证来自 reCaptcha API 的响应。它可以在以下位置获得:https://github.com/google/recaptcha https://github.com/google/recaptcha
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)