1

我有几个带有电子邮件注册表单的网站。我想在与这些网站不同的服务器上填充中央数据库。我正在考虑将表单的操作属性设置为中央数据库服务器上的 Web 服务。这个网络服务可以简单地将数据保存到数据库中。您可以推荐哪些安全解决方案来避免黑客攻击/淹没中央服务器?

解决方案之一是检查数据来自(我的网站)的 IP / 域,如果它是不同的,则阻止该 IP。

您还可以推荐哪些其他解决方案?我认为验证码不会在这里真正起作用。

4

2 回答 2

2

如果您要编写一个简单的 Web 服务,您可以将操作设置为当前服务器,并让该服务器上的 PHP 脚本与中央数据库的 Web 服务通信。这样,您就可以进行身份​​验证,并且不会遇到任何安全问题。

于 2012-11-26T10:13:34.643 回答
0

另一种更安全的解决方案是在每个网站上运行一个服务器端代理脚本,它将表单输入连同只有代理和接收者知道的应用程序机密一起转发到您的中央 Web 服务。

非常简单的实现(未经测试):

代理.php

<?php
$secret = '[RANDOMSTRING]'
$webservice = 'https://www.yourhost.com/receiver.php'
$formData = serialize($_POST);
file_get_contents($webservice . '?secret=' . $secret . '&data=' . urlencode($formData));
?>

接收器.php

<?php
if ($_GET['secret'] == '[RANDOMSTRING]') {
    $formData = unserialize($_GET['data']);
} else {
    // ignore
}

注意:由于只涉及服务器到服务器的通信(通过使用 https 进行加固),窃听的风险可以忽略不计。

于 2012-11-26T10:12:52.837 回答