[PHP] 如何保護Querystring?
David Walsh的文章:Tips for Protecting Querystring Keys & Values in PHP,建議了以下五種保護Querystring參數和值的方法:
- 整數需指定資料型態(Typecast Value when Expecting Numbers):確保整數不會被當成字串而造成錯誤。
- 淨化輸入值(Sanitize Input):建立各種類型資料的處理函式,確保資料傳遞時的一致性與安全性。類似在Dreamweaver裡面的GetSQLValueString函式。
- 關閉REGISTER_GLOBALS(Make Sure REGISTER_GLOBALS is Off)。
- 不使用有意義的變數名稱(Don’t Make Variable Names Meaningful):David原本的建議如下,但是有一位仁兄在回應中則持反對的意見,認為這並無助於安全性(還是可以從數值的一致性猜出變數的意義)。
- 將數值加密(Encrypt Querystring Values):使用md5來加密參數值。
$id = (int) $_GET['i'];
<!-- no! --> <a href="/profile.php?user_id=<?php echo $user_id; ?>">Your Profile</a> <!-- yes! --> <a href="/profile.php?q=<?php echo $user_id; ?>">Your Profile</a>
<a href="/profile.php?i=<?php echo md5($user_id); ?>">Click here</a>
最後,請問有人知道「Querystring」的中文怎麼翻譯嗎?


28. May 2008 at 10:21
QueryString 一般我是稱之為「網址參數列 (字串) 」,裡面的變數就稱為「網址參數」 (例如 ?abc=123 裡的 abc)
參考看看 :)
28. May 2008 at 10:42
您好!
我是個剛學習PHP還不到半年的小小RD,
這篇文章給我很不錯的參考價值,謝謝您的分享:D
另外,對於”jaceju”所提供的回應,個人表示同意~
我的看法覺得對於在用途上與翻譯的名稱較為相符與易懂,
也謝謝jaceju大大的分享^^
28. May 2008 at 11:23
Jaceju, Amy:
謝謝你們的建議,我也認同這樣的譯法,只是昨天在寫的時候有點擔心讀者會看不懂,所以還是使用Querystring這個詞。
Amy如果剛開始學php的話,可以訂閱Jaceju大大的部落格:http://blog.roodo.com/jaceju,有很多有用的資訊喔!
28. May 2008 at 13:06
嘿嘿,你先告訴我Power Point的中文翻譯
我就告訴您Querystring的翻譯
28. May 2008 at 14:24
晴樹:
Oh, it’s funny though.