2012-08-22 142 views
0

我知道$_REQUEST不好,因爲它也包含cookie數據。

難道還要糟糕,如果我們使用某種清潔功能的它使用$_REQUEST?有人能夠詳細說明嗎?

+1

如果你在談論使用它的值傳遞給數據庫查詢,只需使用一些支持預處理語句(如[PDO](http://php.net/manual/en/book.pdo。 PHP)),你不必擔心它的大部分。 – Matt

+1

危險源於什麼,我可以問一下嗎?如果服務器相應設置,$ _REQUEST中的任何參數都可以通過POST,GET _and_ cookie發送。而且每個頻道都可能會受到影響。 – raina77ow

+0

@Matt - 你能澄清你'大部分'的含義嗎? – andrewsi

回答

3

$_REQUEST並不是特別危險。任何用戶輸入都可能是攻擊,應該這樣處理。對於任何輸入介質$_GET$_POST$_COOKIE,使用適當的方法intval()preg_match(),......以驗證您獲得的價值是你所期望的東西。

例如,如果您期望文件名並打算將其發送給用戶,請確保它不包含../,這樣用戶將無法訪問您的文件系統。

如果要將用戶生成的值插入到數據庫中,請確保使用舊的mysql_real_escape_string或更好的PDO或mysqli預準備語句轉義了您的值。