我试图了解如何在外部包含JavaScript,以便代码打印到页面。
当我将JavaScript直接插入页面代码时,它会打印“hello”
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">document.write("hello");</script>
</body>
</html>
然而,当我把相同的代码放到外部文件中说“javascript.js”并在html中包含它(src)时它不会打印“你好”吗?
<html>
<head>
<title></title>
<script type="text/javascript" src="http://thewebsite.com/javascript.js"></script>
</head>
<body>
</body>
</html>
我试图了解如何运行外部JavaScript文件并打印“hello”。
如果黑客要在textarea
内部包含以下标记从恶意服务器调用他的恶意脚本,那么XSS如何工作呢?
<script type="text/javascript" src="http://thewebsite.com/javascript.js"></script>
“javascript.js”文件中有什么内容:
<script type="text/javascript">
document.write("hello");
</script>
该文件位于同一个域中,因此同源策略不应在此处应用,如上所述,如果我直接插入代码,它确实有效,但在我尝试作为单独的文件包含时则不行。
我认为包含JavaScript作为外部文件,应该打印外部文件的内容(在本例中为“hello”),好像它是直接插入html页面一样?
答案 0 :(得分:0)
当我将JavaScript直接插入页面代码时,它会打印“hello”
正确
然而,当我把相同的代码放到外部文件中说“javascript.js”并在html中包含它(src)时它不会打印“你好”吗?
如果没有写入内容,那么可能会引发错误。检查浏览器的错误控制台。
问题是您在JavaScript文件中包含HTML脚本标记。 JavaScript文件应仅包含 JavaScript。
该文件位于同一域中,因此不应在此处应用同源策略
没有。同源策略只是阻止JavaScript从源B读取数据而不是从源B读取数据。由于数据包含在脚本本身中,即使脚本是从源B加载的,它仍然可用。
答案 1 :(得分:-1)
我想有一个名为Same Origin Policy
的浏览器强制实施的策略,可以确保来自不同域的JS在单个页面中加载时不会访问其他数据。假设您有Google广告,并且其中包含一些Javascript。如果Google广告中的脚本能够访问您网站中的数据,那将是不明智的(反之亦然,但是您总是将Google广告或“赞”按钮作为iFrame,因此无论如何它们都是最整齐的分离。)
如果您可以将js文件作为src加载到图像文件中,那么我认为您可以实现您想要的目标。(如果我没有错。)
编辑:javascript文件不能作为输入提供给img标签的src。您只能将其用作javascript:
方案。