我的网站使用 WHMCS。付款后,在线银行服务会访问我的网站(我网站中的一个秘密页面),该网站会接收信息 ( POST
),告诉我的脚本我已收到付款。然后我的脚本使用 WMHCS API 创建一个新的托管帐户。
我必须使用哪些方法来保护此页面不被黑客不当使用?
我想到的第一件事是有一个秘密密码变量 ( POST
) 必须传递给脚本才能运行代码。但我认为这还不够。
我的建议是为该特定页面使用单独的文件夹。然后,您可以在该文件夹中使用 .htaccess 来拒绝来自域的所有请求,但您想要的请求除外。在您的 .htaccess 中,类似下面的内容将满足您的需要。
order deny,allow
deny from all
allow from .somedomain.com
通常,您应该为您的 whmcs 实例编写一个自定义支付网关。http://docs.whmcs.com/Gateway_Module_Developer_Docs
如果您使用 paypal 的 ipn 或任何其他付款通知,您至少可以验证它来自合法来源,例如:
$remotehost = gethostbyaddr($_SERVER['REMOTE_ADDR']); // turn remote ip into real host (paypal people configure dns properly)
$address = 'paypal.com'; // what to look for
if(preg_match("/\b".preg_quote($address)."\b/i",$remotehost))
{
// do ipn and it's ok
}
else
{
// no ipn, because I cannot resolve that host to something paypal.com
}
安装证书后,使用 SSL、设置 > 常规并分配 ssl 路径。