从其他域访问文本文件?

时间:2010-02-03 03:07:58

标签: javascript xss

我正在尝试从外部网站获取文本文件,以便与从我自己的域运行的脚本一起使用。例如:

// run from www.mysite.com:
<html>
  <head>
    <script>
      function blah() {
        var data = document.getElementById("thedata");
        alert(data.innerHtml);
      }
    </script>
  </body>
  <body>
    <embed id="thedata" src="http://someotherwebsite.com/data.txt" HEIGHT=60 WIDTH=144>
  </body>
</html>

这不是最好的例子,但基本上我想使用javascript来获取从该外部文本文件导入的内容,然后对其进行一些计算。

我几乎100%肯定这是不允许的,因为你可以通过从其他网站访问数据和所有这些东西做的所有恶意事情。只是想看看是否有一些合法的方式来做到这一点,

由于

3 个答案:

答案 0 :(得分:1)

AFAIK,有一些让跨域ajax发生的方法,但我总是只在本地域上创建一个加载和打印外部页面的PHP页面,然后可以通过javascript访问它而没有任何问题。

答案 1 :(得分:0)

你是对的。与往常一样,有各种神秘的例外。在这种情况下,我能想到的唯一一个是data.txt是否解析为JavaScript。

答案 2 :(得分:0)

我没有在每个浏览器中测试过这个,(*),但我很确定你可以在一个看不见的iFrame中加载它并从那里解决内容......

<!DOCTYPE html>
<html>
<head></head>
<body>
<iframe name="myiframe" src="http://localhost/~ben/test_text.txt"></iframe>
</body>
</html>

然后使用Javascript来解决iFrame对象,(我在这里使用了一个快速的Jquery版本)...

<script>
alert(window.myiframe.document.body.innerHTML);
</script>

(*)此参考建议在大多数浏览器中都可以使用,包括IE ...
http://roneiv.wordpress.com/2008/01/18/get-the-content-of-an-iframe-in-javascript-crossbrowser-solution-for-both-ie-and-firefox/