如何在php中保护查询字符串?

如何在php中保护查询字符串?,php,string,urlencode,urldecode,Php,String,Urlencode,Urldecode,urlencode和urldecode函数都在那里,但是如果您有一个编码值,可以使用urldecode函数轻松解码 是否有任何其他方法可以用来使查询字符串更强大,更不容易受到攻击。 使用散列可以,但如果可以的话,可以尝试不使用太多的计算。听起来您谈论的是URL字符串,而不是查询字符串。保护不希望用户看到的变量的最佳方法是使用POST操作而不是GET操作 urlencode的目的是对可能包含特殊字符等的字符串进行编码,以传递GET请求 POST不会将变量存储为URL的一部分,也不会存储在浏览器历史

urlencode和urldecode函数都在那里,但是如果您有一个编码值,可以使用urldecode函数轻松解码

是否有任何其他方法可以用来使查询字符串更强大,更不容易受到攻击。
使用散列可以,但如果可以的话,可以尝试不使用太多的计算。

听起来您谈论的是URL字符串,而不是查询字符串。保护不希望用户看到的变量的最佳方法是使用POST操作而不是GET操作

urlencode
的目的是对可能包含特殊字符等的字符串进行编码,以传递GET请求

POST不会将变量存储为URL的一部分,也不会存储在浏览器历史记录中,因此它更适合发送敏感信息。如果您想真正保护信息不受用户操纵,则必须对其进行散列或加密(例如,在发布之前应对密码进行散列)


请记住,即使使用POST,您也不会对想要获取该数据的人隐瞒任何信息。对于允许在GET和POST中发送的数据类型,要非常小心。要知道,无论您选择哪种,最终用户仍然可以对其进行操作。

这将向您展示如何“清理”用户的输入,无论输入是否来自查询字符串


我不知道如何张贴的变量是更安全的所有。。。Chrome开发工具可以解决这个问题。

您想要什么类型的安全性?url编码参数的使用是需要解决安全问题的地方,这是验证不可信和不可靠输入的问题。或者,你可以试着做奥沙沃特在回答中所说的。如果考虑到安全性,我不认为使用POST可以节省一些东西——使用HTTPS(SSL)而不是http!完全不同类型的安全性(防止外部嗅探而不是用户操纵),但也很有用。如何在用户端进行安全保护。。。清理输入只能在服务器端完成清理输入很有用,但您确实应该锁定它(例如,在ColdFusion中使用CFQUERYPARAM)