我有几个网站提供电子邮件注册表单。我想在不同的服务器上填充中央数据库,然后填写这些网站。 我正在考虑将表单的action属性设置为中央数据库服务器上的webservice。该Web服务可以简单地将数据保存到数据库中。 您可以推荐哪些安全解决方案来避免黑客攻击/充斥中央服务器?
其中一个解决方案是检查数据来自的IP /域(我的网站),如果是另一个,则阻止该IP。
您可以推荐哪些其他解决方案?我认为Captcha在这里不会真正起作用。
答案 0 :(得分:2)
如果要编写简单的Web服务,只需将操作设置为当前服务器,然后让该服务器上的PHP脚本与中央数据库的Web服务进行通信。这样,您就可以进行身份验证和,您没有任何安全问题。
答案 1 :(得分:0)
另一种更安全的解决方案是在每个网站上运行服务器端代理脚本,将表单输入转发到您的中央Web服务以及代理和接收方只知道的应用程序密钥。
非常简单的实施(未经测试):
<强> proxy.php 强>
<?php
$secret = '[RANDOMSTRING]'
$webservice = 'https://www.yourhost.com/receiver.php'
$formData = serialize($_POST);
file_get_contents($webservice . '?secret=' . $secret . '&data=' . urlencode($formData));
?>
<强> receiver.php 强>
<?php
if ($_GET['secret'] == '[RANDOMSTRING]') {
$formData = unserialize($_GET['data']);
} else {
// ignore
}
注意:由于只涉及服务器到服务器的通信(使用https强化),窃听的风险可以忽略不计。