我想知道是否$_POST
& $_GET
可能存在安全問題。
比方說,我有一個數據具有以下發送到PHP文件中的AJAX代碼:
if(isset($_POST['id'])) {
$client_id = mysql_real_escape_string($_POST['id']);
$client_name = mysql_real_escape_string($_POST['name']);
//Delete the Client
$sql="DELETE FROM clients WHERE id='".$client_id."'";
mysql_query($sql) or die(mysql_error());
//Client Pages Delete
$sql="DELETE FROM fanpages WHERE client='".$client_name."'";
mysql_query($sql) or die(mysql_error());
現在讓我們假設PHP文件名是delete.php
任何用戶都可以隨便寫類似delete.php?id=423&name=Jack
,它會大聲詢問並刪除客戶端?
我在考慮在開始時加入COOKIE檢查,但據我所知COOKIE也可能是假的,對嗎?
那麼什麼是解決方案使用DB權限的組合來製作安全的$_POST
& $_GET
請求?
編輯:所有這一切都發生在一個用戶密碼保護的區域內,但我問的唯一delete.php
文件,我需要一個cookie檢查添加到該文件中呢?
EDIT2:腳本與COOKIE的不是SESSIONS一起工作,我是否應該將SESSIONS添加到系統中?是否有必要在同一個系統上使用Cookie和會話?
你必須做出某種身份驗證。如果你沒有這個,任何人都可以簡單地輸入網址(就像你說的)並執行更改。你應該有一些代碼,會話,密碼 - 在你的網站上。這將增加安全性。 – OptimusCrime
您可以輕鬆創建自己的獲取和帖子。修改帖子並不難,但顯然比使用get更難。 PDO可以阻止SQL注入,但您仍然需要檢查用戶是否有權執行某些查詢。所以在你的情況下,你需要看看用戶是否可以真正運行該查詢。 – Matt
您需要在每個需要保護的文件中添加會話檢查。 –