簡體   English   中英

PHP跨域表單處理安全

[英]PHP cross-domain form processing security

我有幾個帶有電子郵件注冊表單的網站。 我想在與這些網站不同的服務器上填充中央數據庫。 我正在考慮將表單的 action 屬性設置為中央數據庫服務器上的 web 服務。 這個網絡服務可以簡單地將數據保存到數據庫中。 您可以推薦哪些安全解決方案來避免黑客攻擊/淹沒中央服務器?

解決方案之一是檢查數據來自(我的網站)的 IP/域,如果它是不同的,則阻止該 IP。

您還可以推薦哪些其他解決方案? 我認為驗證碼在這里不起作用。

如果您要編寫一個簡單的 web 服務,您只需將操作設置為當前服務器,然后讓該服務器上的 PHP 腳本與中央數據庫的 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 加強),竊聽的風險可以忽略不計。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM