回应SID有什么危险

qwe*_*ymk 3 php security session sessionid

这个页面上说

htmlspecialchars()为了防止XSS相关的攻击打印SID时,可以使用.

如果在不使用的情况下打印SID,有人可能会做出什么样的攻击htmlspecialchars()

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

Tad*_*eck 6

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

现在想象一下能够改变cookie并改成SID某些JS代码的人将你重定向到其他地方.如果您将在未转义的页面上打印该值,则每次都会重定向用户,除非他将清除cookie或禁用JavaScript.

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

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