为什么使用cookie通过php安全风险来输出HTML?

Ahm*_*nas 4 html php

我是一个相对较新的PHP,希望你能帮助我理解为什么你应该在'echo'时清理html,特别是如果数据来自cookie ..

即代替

<h3>Hello, <?php echo $_COOKIE['user']; ?>!</h3>
Run Code Online (Sandbox Code Playgroud)

你应该做

<h3>Hello, <?php echo htmlspecialchars($_COOKIE['user']); ?>!</h3>
Run Code Online (Sandbox Code Playgroud)

这就是我的理解.

cookie存储在客户端,因此存在安全风险,因为恶意用户可以操纵/更改其中的数据(lol @ evil).

但由于cookie存储在客户端,这意味着客户端只能更改自己的cookie,这意味着如果他将某种恶意代码添加到$ _COOKIE ['user'],当cookie运行时,恶意代码将会只显示给一个用户(谁首先更改了cookie)而没有其他人!?所以有什么问题?

Chu*_*ebs 7

您假设用户更改了自己的cookie.Cookie可以由第三方更改(编辑:使用其他软件.第三方网站不能直接更改cookie).这将使某人能够将恶意代码注入用户的浏览器,改变他们的用户体验并可能给代码带来额外的安全风险.

  • 如果第三方可以更改cookie,我会说第三方可以通过多种方式注入代码,而不是更改cookie并依赖于缺少的`htmlspecialchars`. (2认同)