从数据URL加载脚本内容

时间:2016-01-17 23:51:02

标签: javascript

我只是测试是否可以通过数据网址加载脚本。令我惊讶的是,我的实际Chromium有效。

我加载以下文档:

<html>
    <head>
        <script type="text/javascript">
            var head = document.getElementsByTagName('head')[0];
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.src = 'data:text/javascript,alert("hello!");';
            head.appendChild(script);
            head.removeChild(script);
        </script>
    </head>
</html>

......还有一个方块告诉你&#34;你好!&#34;弹出。

这不像eval()那么糟糕吗?这使得编译任意内容(包含任何POSTed内容或GET参数)和&#34;注入&#34;它进入运行代码!

有人可以告诉我这是否是实际浏览器常见的预期行为?

1 个答案:

答案 0 :(得分:1)

它与eval()确实不同,因为它具有几乎相同的行为。但是,在某些情况下eval() is not evil