以下安全吗?
index.html
<div id="loader">loading...</div>
<div onclick="foo()">click me</div>
<div id="change"></div>
<script>
function foo(){
jQuery.ajax({
url: 'get.html',
success: function(txt){
var x = $('#loader').html(txt)
x=$('loader').find('script').html()
eval(x)
}
})
}
</script>
获取.html
<div>Header</div>
<script>
function newfoo(){
$('#change').html('hello world')
}
</script>
理论上这应该有效......
注意:上面可能不起作用,这只是一个演示......
我的问题是:由于某些安全原因,当加载 get.html 时 newFoo() 不会自行运行...上述替代方案是否会造成任何安全威胁?
最佳答案
就像这样,该代码并不安全,因为可以通过设置 <script>
的目标从任何服务器轻松使用它。到它的网址。因此,任何感兴趣的人都可以从任何服务器调用此脚本。不太安全。
不过有一些解决方法。 gmail 的方式是将 while(1) 附加到要返回的函数的开头,然后在执行代码之前在客户端将其删除。因为<script>
会自动执行该代码,除了本地运行的脚本之外,没有人能够使用该代码。
关于javascript - jquery ajax - 安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2060982/