标签: javascript-injection

如何在页面加载后通过jQuery动态插入<script>标记?

我在解决这个问题上遇到了问题.我首先尝试将脚本标记设置为字符串,然后使用jquery replaceWith()在页面加载后将它们添加到文档中:

var a = '<script type="text/javascript">some script here</script>';
$('#someelement').replaceWith(a);
Run Code Online (Sandbox Code Playgroud)

但是我在那个var上得到了字符串文字错误.然后我尝试编码字符串,如:

var a = '&left;script type="text/javascript"&gt;some script here&lt;\/script&gt;';
Run Code Online (Sandbox Code Playgroud)

但发送它replaceWith()只是将该字符串输出到浏览器.

有人可以告诉我你如何<script>在页面加载后动态地将标签添加到浏览器中,理想情况下通过jQuery?

javascript jquery script-tag javascript-injection

95
推荐指数
6
解决办法
22万
查看次数

在Javascript中防止HTML和脚本注入

假设我有一个带输入框的页面.用户在输入框中键入内容并点击按钮.该按钮触发一个函数,该函数获取键入文本框中的值,并将其输出到文本框下方的页面,无论出于何种原因.

现在,令人不安的是难以找到明确的答案,或者我不会问,但你会如何输出这个字符串:

<script>alert("hello")</script> <h1> Hello World </h1>
Run Code Online (Sandbox Code Playgroud)

这样既不执行脚本也不显示HTML元素?

我在这里真正要问的是,是否存在一种在Javascript中避免HTML和脚本注入的标准方法.每个人似乎都有不同的方式(我使用jQuery所以我知道我可以简单地将字符串输出到文本元素而不是html元素,但这不是重点).

html javascript javascript-injection html-injections

47
推荐指数
2
解决办法
10万
查看次数

Selenium:在加载/执行页面的任何其他脚本之前,如何在页面中注入/执行Javascript?

我正在使用selenium python webdriver来浏览一些页面.我想在加载和执行任何其他Javascript代码之前将javascript代码注入页面.另一方面,我需要将我的JS代码作为该页面的第一个JS代码来执行.有没有办法通过Selenium做到这一点?

我用谷歌搜索了几个小时,但我找不到任何正确的答案!

javascript python selenium javascript-injection

23
推荐指数
4
解决办法
1万
查看次数

注入javascript thourgh <img> -tag

我想知道是否可以通过img-tag注入一些javascript代码.场景是一个人设置这样的html页面

<img src="anotherdomain.com/someimage.jpg" />
Run Code Online (Sandbox Code Playgroud)

Anotherdomain是我的域名.是否可以将/someimage.jpg的调用重定向到包含在请求图像时执行的som javascript代码的另一个文件?

html javascript image javascript-injection

14
推荐指数
1
解决办法
5218
查看次数

MongoDB中的JavaScript NoSQL注入预防

如何防止JavaScript NoSQL注入MongoDB?

我正在开发一个Node.js应用程序,我正在将req.body一个json对象传递给mongoose模型的save函数.我认为幕后有保护措施,但事实并非如此.

javascript javascript-injection mongoose mongodb node.js

13
推荐指数
3
解决办法
1万
查看次数

试图利用?

我看到我的nopCommerce网站有一个记录搜索:

ADw-script AD4-alert(202) ADw-/script AD4-
Run Code Online (Sandbox Code Playgroud)

虽然他们想要完成什么,但我有点好奇.我搜索了一下,看起来ADw-script AD4-是UTF7中的编码<script>.但为什么alert(202)呢?

他们只是检查漏洞吗?

记录了更多的黑客尝试,我在这里提出了一个关于他们的新问题:黑客企图,他们试图做什么以及如何检查他们是否成功?

javascript security unicode xss javascript-injection

11
推荐指数
1
解决办法
2927
查看次数

如何从XWalkView获取html内容?

我试过使用JavaScriptInterface在WebView中做过.但它没有用.如何从XWalkView获取HTML内容?

通过这种方式,我可以从WebView获取HTML:

    public class MainActivity extends AppCompatActivity {

    WebView myWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myWebView = (WebView) findViewById(R.id.webView);
        WebSettings webSettings = myWebView.getSettings();

        webSettings.setJavaScriptEnabled(true);

        myWebView.loadUrl("http://joerichard.net/api/test/generate.htm");
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

        myWebView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                if(url.endsWith("generate.htm")){
                    myWebView.loadUrl("javascript:window.HtmlViewer.showHTML" +
                            "('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
                }
            }
        });

    }

    class MyJavaScriptInterface {

        private Context ctx;

        MyJavaScriptInterface(Context ctx) {
            this.ctx = ctx;
        }

        public void showHTML(String html) {
            Document doc = Jsoup.parse(html);
        }

    }

}
Run Code Online (Sandbox Code Playgroud)

我为XWalkView尝试了相同但没有成功.如何从XWalkView获取HTML源代码?

html android javascript-injection crosswalk

11
推荐指数
0
解决办法
667
查看次数

防止PHP Web应用程序中的JavaScript注入

在PHP Web应用程序中阻止或阻止JavaScript注入所需的措施是什么,以便不提供敏感信息(PHP,HTML/XHTML和JavaScript中的最佳实践)?

javascript php javascript-injection

10
推荐指数
2
解决办法
2万
查看次数

JavaScript注入和书签有什么区别吗?

根据维基百科关于Bookmarklets的文章(http://en.wikipedia.org/wiki/Bookmarklet),Bookmarklets的概念是:

Web浏览器将URI用于标记的href属性和书签.URI方案(例如http:,file:或ftp:)指定协议和字符串其余部分的格式.浏览器还实现了一个前缀javascript:对解析器来说就像任何其他URI一样.在内部,浏览器看到指定的协议是javascript,将字符串的其余部分视为JavaScript应用程序然后执行,并将结果字符串用作新页面.

它表示结果字符串用作新页面.那么这是否意味着浏览器的原始DOM不受该字符串的影响?但是,如果将结果字符串用作新页面,我如何在现有DOM中更改或注入新的DOM元素?因为脚本提醒Hello或注入一些新的DOM元素并没有真正返回任何内容.他们有点在现有的DOM上工作.

现在,在Internet Explorer中,除了使用Bookmarklets在页面上执行一些JavaScript之外,我还可以编写一个BHO插件并按以下方式注入:

        document = (HTMLDocument)webBrowser.Document; 
        var injectedJS = System.IO.File.ReadAllText("InjectedJS.js");
        var window = document.parentWindow;
        window.execScript("(function(){ " + injectedJS + " })()");
Run Code Online (Sandbox Code Playgroud)

同样在chrome中,我可以编写一个扩展来实现同样的目的:

var s = document.createElement('script');
s.src = chrome.extension.getURL("script.js");
s.onload = function() {
    this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);
Run Code Online (Sandbox Code Playgroud)

这些有何不同?我所拥有的高级问题是:

  1. 这三种方法是否在不同的环境中执行JavaScript代码?
  2. 对于其中一个没有另外一个没有的限制吗?
  3. 执行结果呈现给用户或反映在浏览器中的方式有​​什么不同吗?
  4. "JavaScript注入"和"Bookmarklets"这两个术语之间是否有任何区别?虽然我认为JavaScript注入是一种效果而Bookmarklets是实现这一目标的一种方式,但BHO和Chrome扩展是另一种方式.
  5. 如果4中的假设是正确的,那么使用BHO的execScript方法或在浏览器中使用javascript:protocol 执行JavaScript的方式有什么不同吗?

javascript bho bookmarklet javascript-injection google-chrome-extension

10
推荐指数
1
解决办法
1979
查看次数

客户端HTML清理有多安全?

我最近一直在寻找Pagedown.js,因为在我的页面上使用mark-down而不是丑陋的readonly textareas.

我非常谨慎,因为它似乎很容易欺骗消毒的转换器.我已经看到围绕Angular.js进行了一些讨论,并且它是html绑定,并且当Knockout.js 3.0出现以前曾经存在对html绑定的不安全感时也听到了一些内容.

似乎所有人都需要做的就是在Pagedown.js中禁用清洁剂,例如:

var safeConverter = new Markdown.Converter();
// safeConverter is open to script injection

safeConverter = Markdown.getSanitizingConverter();
// safeConverter is now safe

// Override the getSanitizingConverter pseudo-code
Markdown.getSanitizingConverter = function () {
    return Markdown.Converter;
};
Run Code Online (Sandbox Code Playgroud)

他们可以打开一个站点,直到脚本注入.这不是真的吗?

编辑

那么为什么像这样的图书馆使用消毒剂来使用客户端呢?当然他们说不要渲染未经过清理的HTML,但下一行说使用Markdown.Sanitizer ..

Angular如何通过消毒杀菌剂服务不对它开放,或者这只是一场闹剧?

html javascript javascript-injection angularjs knockout.js

9
推荐指数
2
解决办法
3722
查看次数