我对php还比较陌生,希望您能帮助我理解为什么在“echo”时要清理html,特别是当数据来自cookie时。
即代替
<h3>Hello, <?php echo $_COOKIE['user']; ?>!</h3>
你应该这么做
<h3>Hello, <?php echo htmlspecialchars($_COOKIE['user']); ?>!</h3>
这就是我所理解的。
cookie存储在客户端,因此存在安全风险,因为其中的数据可能被恶意用户操纵/更改(lol@evil)。
但由于cookie存储在客户端,这意味着客户端只能更改自己的cookie,也就是说,如果他在运行cookie时向$_cookie['user']添加了某种恶意代码,恶意代码只会显示给一个用户(首先更改cookie的用户),而不会显示给其他用户!?那有什么问题?
最佳答案
您假设用户更改了自己的cookie。Cookie可以由第三方更改(编辑:使用其他软件)。第三方网站不能直接更改cookie)。这将使某些人能够将恶意代码注入用户浏览器,从而更改其用户体验,并可能对您的代码造成额外的安全风险。