2016-02-21 41 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

更多信息