2016-02-21 58 views
0

我只是想問一個關於PHP中的$ _GET參數和它們的安全性的簡短問題。儘管我的get參數不是可見的,但它在我的url中。我只是想知道是否有任何額外的步驟可以讓它更安全?

我有一個$ _GET變量命名的網頁,決定了他們的網頁,它有一個reqrite規則斜線後檢查的第一個字

我知道之前,你應該使用mysql_real_escape_string,但現在已被廢棄,將來會被刪除?和更新的方式..

例子:http://example.com/pagehere

會作爲傳遞... http://example.com/index.php?page=pagehere

location/{ 
     rewrite ^/(|/)$ /index.php?page=$1; 
     rewrite ^/([a-zA-Z0-9_-]+)(|/)$ /index.php?page=$1; 
     rewrite ^/(.*)\.htm$ /$1.php; 
    } 

回答

1

請記住,任何來自用戶端的傳入數據都是不安全的,因此始終採取必要措施確保它不會在系統中引起任何問題,就數據庫查詢而言,始終使用PHP PDO類來完成你的數據庫相關任務,使用Prepared語句將會使任何SQL注入攻擊無效,在這裏閱讀更多關於準備語句的內容 - http://php.net/manual/en/pdo.prepared-statements.php

如果在讀取數據時正確處理它,使用GET變量不是問題從$ _GET您可以使用htmlspecialchars()清除任何惡意代碼的數據。這裏一些有用的信息 - How can I prevent SQL injection in PHP?

- 關於如何使用PDO來防止SQL注入 https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29

更多信息