我有一个相当静态的网站。它有一些形式可以发送联系信息,邮件列表提交等。也许在上传到网站后的几小时/几天,我发现主索引页面中有新的代码,我没有放在那里包含隐藏无形分隔中的一堆链接。网站链接注入
我有以下代码处理从窗体中发送的变量。
<?php
// PHP Mail Order to [email protected] w/ some error detection.
$jamemail = "[email protected]";
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
die($problem);
}
return $data;
}
$email = check_input($_POST['email'], "Please input email address.");
$name = check_input($_POST['name'], "Please input name.");
mail($jamemail, "Mailing List Submission", "Name: " . $name . " Email: " .$email);
header('Location: index.php');
?>
我的索引页中的以下代码呈现形式与一些JavaScript做对之前提交划界案的内容错误检测。
<form action="sendlist.php" method="post" onSubmit="return checkmaill(this);">
<label for="name"><strong>Name: </strong></label>
<input type="text" name="name"/><br />
<label for="email"><strong>Email: </strong></label>
<input type="text" name="email"/><br />
<input type="submit" value="Subscribe" style="width: 100px;"/>
</form>
在这一天结束时,源代码中注入超链接如下:
</body>
</html><!-- google --><font style="position: absolute;overflow: hidden;height: 0;width: 0">
xeex172901
<a href=http://menorca.caeb.com/od9c2/xjdmy/onondaga.php>onondaga</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/tami.php>tami</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/shotguns.php>shotguns</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/weir.php>weir</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/copperhead.php>copperhead</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/mpv.php>mpv</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/brunei.php>brunei</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/doreen.php>doreen</a>
我不认为该PHP脚本中的任何内容都有写入文件的能力 - 您确定您的服务器是安全的吗? (没有安全漏洞)。 – robbo 2010-01-30 01:08:49
那么,我不会自己运行服务器,因为我们在Hasweb提供的托管软件包上运行网站。如果它一直在发生,我将不得不发送一张票以帮助查看服务器是否有问题。 – 2010-01-30 17:35:53