Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过URL栏将JavaScript注入网站?_Javascript_Html_Code Injection - Fatal编程技术网

如何通过URL栏将JavaScript注入网站?

如何通过URL栏将JavaScript注入网站?,javascript,html,code-injection,Javascript,Html,Code Injection,以下是我注入页面的JavaScript代码: javascript:{document.head.innerHTML+='function inject(){alert(“hello”);}; document.body.innerHTML+='Run';} 在URL栏中运行此代码后,我检查了网站的源代码。按钮和功能定义都存在,但按下按钮不会像预期的那样运行警报 有什么问题吗?为了安全起见,一些浏览器决定限制在URL栏中使用javascript 一些浏览器不再接受javascript:直接从位

以下是我注入页面的JavaScript代码:

javascript:{document.head.innerHTML+='function inject(){alert(“hello”);};
document.body.innerHTML+='Run';}
在URL栏中运行此代码后,我检查了网站的源代码。按钮和功能定义都存在,但按下按钮不会像预期的那样运行警报


有什么问题吗?

为了安全起见,一些浏览器决定限制在URL栏中使用javascript

  • 一些浏览器不再接受javascript:直接从位置栏,他们需要您从bookmarklet调用脚本

  • 你的语法带有一厢情愿的味道。你在这里尝试的东西永远不会那样起作用

  • 此语法:

    javascript:(function() { var s = document.createElement("script"); s.src="somejsurl.js";document.getElementsByTagName("head")[0].appendChild(s)})()
    
    也许是个更好的开始

    要执行此操作,您需要使用

    <a href="javascript:(function() { var s = document.createElement('script'); s.src='somejsurl.js';document.getElementsByTagName('head')[0].appendChild(s)})()">Exec</a>
    

    由于语法完全错误,网站可能会进行适当的输出过滤以防止XSS攻击。为什么要向
    添加一些文本来定义函数?什么按钮?你真的在检查源代码吗(因为听起来像是在检查live DOM)?你需要将JS代码注入到标记中,还需要将按钮的
    onclick
    prop设置为“inject()”来绑定它。目前,您只需将函数添加为明文。如果您想在浏览器中直接执行js,最好的方法是使用element inspector的web控制台,它至少在firefox和chrome中内置……这不是唯一的原因。他的剧本永远行不通
    javascript:(function() { var b = document.createElement("button"); b.onclick=function() { alert('hello')}; b.innerTHML='Hello';})()