我正在将PHPSESSID传递到PHP页面(通过POST),我想知道什么是清除输入的最佳方法。 mysql_real_escape_string
是否足够?在处理 session ID时,我有什么特别的考虑(我的意思是,它们只能是字母和数字,对吗?)?
编辑:
为了澄清这个问题,我真正想知道的是:如果有人篡改了POST数据,他可以发送一个恶意字符串PHPSESSID来发送session_id($_GET['PHPSESSID'])
吗?
我个人没有想到任何事情,但总比后悔好...
谢谢
尼科
最佳答案
很好的想法,但是据我所见,没有必要清理此输入。 PHPSESSID将传递给session_id()
。
session_id确实有some limitations:
但是session_id()
应该使用错误消息来处理与这些规则的偏差。 (您可能想捕获该错误消息,并在错误时终止脚本。)
我能看到的唯一真正的危险是当您使用自定义 session 处理程序时,例如连接到数据库。在这种情况下,您将必须清理输入内容,例如使用mysql_real_escape_string()
。但是,这应该在自定义 session 处理程序内部进行。
毋庸置疑,如果您在其他上下文中使用 session ID(例如,作为HTML表单中的参数),则需要针对该特定输出(在这种情况下,为htmlspecialchars()
)采取必要的卫生措施。
关于php - 清理PHPSESSID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3735809/