[PHP] 如何保護Querystring?

David Walsh的文章:Tips for Protecting Querystring Keys & Values in PHP,建議了以下五種保護Querystring參數和值的方法:

  1. 整數需指定資料型態(Typecast Value when Expecting Numbers):確保整數不會被當成字串而造成錯誤。
  2. $id = (int) $_GET['i'];
  3. 淨化輸入值(Sanitize Input):建立各種類型資料的處理函式,確保資料傳遞時的一致性與安全性。類似在Dreamweaver裡面的GetSQLValueString函式。
  4. 關閉REGISTER_GLOBALS(Make Sure REGISTER_GLOBALS is Off)。
  5. 不使用有意義的變數名稱(Don’t Make Variable Names Meaningful):David原本的建議如下,但是有一位仁兄在回應中則持反對的意見,認為這並無助於安全性(還是可以從數值的一致性猜出變數的意義)。
  6. <!-- 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>
    
  7. 將數值加密(Encrypt Querystring Values):使用md5來加密參數值。
  8. <a href="/profile.php?i=<?php echo md5($user_id); ?>">Click here</a>

最後,請問有人知道「Querystring」的中文怎麼翻譯嗎?

可能的相關文章:

 
 
 

“[PHP] 如何保護Querystring?”有 5 則回應

  1. jaceju
    28. May 2008 at 10:21

    QueryString 一般我是稱之為「網址參數列 (字串) 」,裡面的變數就稱為「網址參數」 (例如 ?abc=123 裡的 abc)

    參考看看 :)

  2. Amy
    28. May 2008 at 10:42

    您好!
    我是個剛學習PHP還不到半年的小小RD,
    這篇文章給我很不錯的參考價值,謝謝您的分享:D

    另外,對於”jaceju”所提供的回應,個人表示同意~
    我的看法覺得對於在用途上與翻譯的名稱較為相符與易懂,
    也謝謝jaceju大大的分享^^

  3. yoren
    28. May 2008 at 11:23

    Jaceju, Amy:

    謝謝你們的建議,我也認同這樣的譯法,只是昨天在寫的時候有點擔心讀者會看不懂,所以還是使用Querystring這個詞。

    Amy如果剛開始學php的話,可以訂閱Jaceju大大的部落格:http://blog.roodo.com/jaceju,有很多有用的資訊喔!

  4. 晴樹
    28. May 2008 at 13:06

    嘿嘿,你先告訴我Power Point的中文翻譯
    我就告訴您Querystring的翻譯

  5. yoren
    28. May 2008 at 14:24

    晴樹:

    Oh, it’s funny though.

歡迎留言: