形式發送數據時,只是想知道的區別在安全安全AJAX的VS常規形式的數據
<input type="hidden" name="id" value="<?php echo $id; ?>">
與
jQuery(this).ajaxSubmit({
data: { id: '<?php echo $id; ?> }
});
的。一種方法比另一種更容易受到黑客攻擊嗎?安全發送表格數據的最佳方式是什麼,這樣外人不會篡改或更改身份證號碼?
形式發送數據時,只是想知道的區別在安全安全AJAX的VS常規形式的數據
<input type="hidden" name="id" value="<?php echo $id; ?>">
與
jQuery(this).ajaxSubmit({
data: { id: '<?php echo $id; ?> }
});
的。一種方法比另一種更容易受到黑客攻擊嗎?安全發送表格數據的最佳方式是什麼,這樣外人不會篡改或更改身份證號碼?
安全性沒有區別。在這兩種情況下,都會向服務器發送HTTP POST請求,並從服務器接收響應。除了請求中的某些頭部之外,服務器甚至不知道或在乎兩者之間的區別。
舉例說明,在提交常規表單POST和AJAX POST時,請查看瀏覽器調試工具(Firebug或Chrome工具)中的網絡請求。兩者非常接近,除了瀏覽器可能爲AJAX添加另外一個或兩個頭文件。
安全發送表單數據的最佳方式是什麼,這樣外人不會篡改或更改id號?
沒有。任何精明的用戶都可以手動製作一個HTTP POST請求來包含他們想要的任何數據。瀏覽器現在甚至還有一些方便的工具來幫助開發和調試。一般規則是服務器端代碼從不隱式信任從客戶端發送的請求。始終驗證用戶是否有權執行他們正在嘗試執行的操作,數據不是惡意的,或者在使用數據之前(尤其是在數據庫查詢中作爲常見示例)進行了適當的消毒處理等等。
基本上從安全角度來看沒有區別。在這兩種情況下,有人看到這個id是微不足道的,在這兩種情況下,對於有人構建他們自己的API請求來說,這是微不足道的。
使表單安全的方法是確保所有內容始終在服務器上進行驗證。雖然在客戶端添加諸如表單驗證之類的東西可以改善用戶體驗,但這不是安全性。您應該始終假定您的服務器可以收到請求中的無效和惡意數據並將其考慮在內。
表單與AJAX沒有區別。如果您使用GET或POST以及使用HTTPS或HTTP,那麼有什麼不同。
如果您不希望數據被篡改,則應使用HTTPS和POST代替GET或未加密的HTTP POST。有關GET和POST的比較,請參見this。獲取將創建一個查詢字符串,該字符串是網址的一部分,其中包含數據,即使您使用的是HTTPS,該網址對嗅探器也是可見的。
如果您使用POST,發佈的消息包含您的數據,所以嗅探只會看到URL,它不會顯示ID,但他們將無法看到發佈到服務器的ID,因此他們可以不要忍受它。