消毒PHPSESSID

前端之家收集整理的这篇文章主要介绍了消毒PHPSESSID前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在将 PHPSESSID传递给 PHP页面(通过POST),我想知道什么是消毒输入的最佳方法. MysqL_real_escape_string会不够?在处理会话ID时我应该考虑一些特殊问题(我的意思是,它们只能是字母和数字吗?)?

编辑:
为了澄清这个问题,我真正想知道的是:如果有人篡改POST数据,他是否可以发送一个恶意字符串作为PHPSESSID,当我调用session_id($_ GET [‘PHPSESSID’])时会发生令人讨厌的事情?
我个人想不到任何东西,但比抱歉更安全…

谢谢

尼科

好的想法,但据我所知,没有必要消除这种意见. PHPSESSID将传递给session_id().

session_id确实有some limitations:

Depending on the session handler,not all characters are allowed within the session id. For example,the file session handler only allows characters in the range a-z A-Z 0-9,(comma) and – (minus)!

但session_id()应该使用错误消息处理与这些规则的偏差. (您可能希望捕获该错误消息并在出错时终止脚本.)

我能看到的唯一真正的危险是当你使用自定义会话处理程序,例如连接到数据库.在这种情况下,您将不得不清理输入,例如使用MysqL_real_escape_string().但是,这应该发生在自定义会话处理程序中.

不言而喻,如果您在某些其他上下文中使用会话ID(例如,作为HTML表单中的参数),则需要采取特定输出所需的卫生措施(在这种情况下,htmlspecialchars()).

猜你在找的PHP相关文章