我设置了一个 PayPal IPN PHP 文件,它将所有 IPN 发布内容变量分配给变量。此文件仅来自 paypal.com(即没有人应该知道它的 url)。
我的问题是我应该采取必要的步骤来过滤和清理来自 PayPal 的 POST 数据,还是屏蔽我的 IPN 文件名 (IPN_082j3f08jasdf.php) 就足够了?
此外,有人可以确认我的清理代码吗?这是非常基本的。我在通过 POST 或 GET 发送的所有内容上运行它,我的目标是防止任何类型的 MySQL 注入(inject)或任何黑客所做的事情。
function filter($data){
// changes & to &
// changes " to "
// removes \ < >
$data = trim(htmlentities(strip_tags($data)));
if(get_magic_quotes_gpc()){
$data = stripslashes($data);
}
$data = mysql_real_escape_string($data);
return $data;
}
最佳答案
混淆文件名永远都不够——您需要过滤 POST 数据,是的。在您证明之前,假设不是 PayPal 调用脚本。
清理看起来不错——如果你的代码变得很长,我倾向于分两步清理它——开头的 strip_tags 和基本清理,以及在你联系数据库的同时转义 mysql—— - 它使维护 IMO 变得更加容易。
关于PHP 从 PayPal IPN 过滤 POST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3381293/