回应SID有什么危险

时间:2012-09-06 01:57:14

标签: php security session sessionid

this页面上显示

  

打印SID时可以使用htmlspecialchars()以防止与XSS相关的攻击。<​​/ p>

如果您在不使用htmlspecialchars()的情况下打印SID,有什么可能的攻击?

会话ID只能包含数字和字母。我错过了什么吗?

1 个答案:

答案 0 :(得分:6)

会话ID通常存储在客户端(例如,在cookie或GET参数中),因此可以通过某些脚本甚至通过更改URL来更改

现在假设有人能够更改cookie并将SID更改为某些JS代码,将您重定向到其他地方。如果您将在未转义的页面上打印该值,则每次都会重定向用户,除非他将清除cookie或禁用JavaScript。

换句话说,会话ID来自客户端并且不安全(除非您将使用其他机制确保它未被更改,例如cookie签名,包含在例如某些PHP框架中) ,所以你不能相信它不含有害的东西。

这与构造SQL查询时不能将此值一样安全的原因相同(因此SID也是可以进行SQL注入的地方)。