我听说过需要使用mysql_real_escape_string或htmlspecial chars清理会话的一些时间,因为它们可以被修改。我想知道它们是如何被修改的,因为当我查看名为PHPSESSID的网站会话时,它所包含的值始终是加密的。
首先使用什么加密方法以及如何修改它。我想知道这个的原因是为了更好地理解如何根据人们在那里使用高级插孔会话的方法来保护自己
感谢。
答案 0 :(得分:5)
它们无法修改,它们存储在服务器上。 PHPSESSID只是一个标识符,它不是加密的,而是随机生成的(因此它对每个用户都是唯一的)。人们通过窃取PHPSESSID cookie来劫持会话,通常是通过跨站点脚本攻击。阅读这个答案,获得一个很好的PHP会话摘要 - What do i need to store in the php session when user logged in
答案 1 :(得分:0)
会话存储在服务器上。这意味着所有数据都存储在临时文件中,并在x个时间后删除。浏览器不存储会话数据。它存储会话的ID,服务器使用该ID来获取正确的临时文件。
因此,用户实际上永远无法访问存储在会话中的变量。但是参考了他们的会话。可以获取其他人的会话ID。这样你就可以假装成另一个用户。如果会话用于验证。
阅读会话劫持here。
答案 2 :(得分:0)
可以修改的是客户端发送给您的会话ID。因此,与所有用户提供的数据一样,在将其用于任何地方之前,需要对其进行“清理”,例如在将其插入MySQL数据库之前使用mysql_real_escape_string。