有些时候希望对于一个常光顾的页面进行一些自动化处理。
对于一些可以写插件的浏览器来说,直接写插件可能会比较简单。
但是并不是所有的浏览器都支持插件,另外插件也不可以在不同的浏览器间共用。
这时候,js注入会是个还比较简单的办法。
既然是js注入,自然就是要在浏览器正在浏览的页面上添加一段js了。
一般这个用bookmark一个链接来实现
比如
javascript:(function(){alert(%27hello,world!%27);})();
但是每个浏览器都对可注入的js长度有一定的限制,并且要进行html转码。
所以代码比较长的话,不大可能把所有的逻辑都写在这个链接里。
最好的方法,就是动态调用服务器端的一段儿js代码(由于无法load本地的js,所以要搭建一个简单的web服务器)。
bookmark的实现
if(window.location.href.indexOf('www.iteye.com')>=0){ if(!window.pcschecker){ var uId='pcs_bk'; var st=document.getElementById(uId); if(st){st.parentNode.removeChild(st);} st=document.createElement('script'); st.src='http://localhost:8888/js?'+Math.random(); st.setAttribute('id',uId); document.getElementsByTagName('head')[0].appendChild(st); }else{window.pcschecker.check();} }else{alert('Only for PCS.')}
转码后,附带一个转码网站 http://mcdlr.com/js-inject/
javascript:(function(){if(window.location.href.indexOf(%27www.iteye.com%27)>=0){ if(!window.pcschecker){ var uId=%27pcs_bk%27; var st=document.getElementById(uId); if(st){st.parentNode.removeChild(st);} st=document.createElement(%27script%27); st.src=%27http://localhost:8888/js?%27+Math.random(); st.setAttribute(%27id%27,uId); document.getElementsByTagName(%27head%27)[0].appendChild(st); }else{window.pcschecker.check();} }else{alert(%27Only for PCS.%27)}})();
当网站是www.iteye.com并且是第一次使用时才会调入js
后台js文件
(function(w){ var pcschecker = {}; pcschecker.$=function(id){ return document.getElementById(id); } pcschecker.check = function(){ alert("hello,world!"); } w.pcschecker = pcschecker; pcschecker.check(); })(window);
附带一段简单的java的httpserver代码,由于使用了sun的实现,所以并不是所有的jdk都可以用。
import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetSocketAddress; import java.util.concurrent.Executors; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; public class SimpleServer { public static void main(String[] args) throws IOException { HttpServer httpServer = HttpServer.create(new InetSocketAddress(8888), 0); httpServer.setExecutor(Executors.newCachedThreadPool()); httpServer.createContext("/js", new HttpHandler() { @Override public void handle(HttpExchange httpExchange) throws IOException { InputStream fis = SimpleServer.class.getResourceAsStream("check.js"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; for (int readNum; (readNum = fis.read(buf)) != -1;) { baos.write(buf, 0, readNum); } fis.close(); byte[] bytes = baos.toByteArray(); httpExchange.sendResponseHeaders(200, bytes.length); OutputStream os = httpExchange.getResponseBody(); os.write(bytes); os.close(); } }); httpServer.start(); System.out.println("HttpServer Start!"); } }
相关推荐
在iOS开发中,JavaScript注入是一种常见的技术,它允许我们在原生应用中与Web视图(如UIWebView或WKWebView)中的JavaScript代码进行交互。这种方式能够实现原生功能与网页内容的深度整合,提升用户体验,或者在某些...
而JavaScript注入则涉及到如何利用Chrome插件API,特别是`content_scripts`配置,将JS代码注入到匹配规则的网页中运行。 **详细知识点:** 1. **Chrome扩展结构**:一个典型的Chrome插件包括manifest.json文件、...
(@Deprecated-推荐使用crosswalk-js-inject)用于Android端的Js注入,从safe-java-js-webview-bridge改进而来,能够在java与js端间相互动态传递函数。
网页JS脚本注入,突破网页本地脚本验证方法实例 JS脚本注入是一种常见的网页攻击手法,通过注入恶意脚本来控制网页的行为。在这个实例中,我们将展示如何使用JS脚本注入来突破网页本地脚本验证方法,跳过验证码,并...
首先,我们要理解JavaScript注入的两种主要方式:动态注入和静态注入。静态注入通常是在HTML文件中直接写入`<script>`标签,而动态注入则可能在页面加载后通过DOM操作或AJAX请求来添加脚本。 1. 静态注入: 在HTML...
纯JS注入 悬浮 固定 浮窗 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <title>JS右下角悬浮广告代码 ;charset=gb2312"> ...
"通过Javascript注入实施的PDF攻击" 本文将围绕PDF攻击的安全问题进行讨论,具体涉及到Javascript注入实施的PDF攻击、苹果电脑的攻击、Wordpress的Java Script注入攻击、MD5哈希被破解等方面。 首先,让我们来讨论...
Android Webview upload 图片上传 ! 导读: ...扩充 webview 防止js注入 解决 android webview 在4.4系统上无法使用情况 博客地址 : http://blog.csdn.net/aaawqqq/article/details/51087805
JS注入,即JavaScript注入,是一种常见的网络攻击手段。攻击者通过向网站输入恶意的JavaScript代码,当这段代码被其他用户加载并执行时,就可以执行攻击者预设的恶意操作。这不仅涉及到网站的前端安全问题,还关系到...
对于使用模拟登陆等操作来...但是本文,提到的设置内容能够有效根治网上的一大堆无效的js注入教程,本文详细讲解,通过如何设置,来达到仿被检测的问题,一次阅读终生受益,再也不为使用模拟登陆被限制的问题而头疼。
标题“通过书签来注入JS”涉及到的是网页开发中的一个技术细节,主要集中在JavaScript的动态注入和书签的利用上。书签在浏览器中通常用于快速访问常用的网站,但这里提到的是利用书签来实现JavaScript代码的注入,这...
Uipath注入JS
在这个主题中,我们将深入探讨Servlet过滤器的API用法、乱码处理策略以及如何防止JavaScript注入问题。 首先,让我们了解一下Servlet过滤器的基础。在Servlet规范中,`Filter`接口定义了过滤器的核心方法,如`...
JavaScript注入攻击是一种网络安全威胁,攻击者通过注入恶意的JavaScript代码到受信任的网站中,当其他用户访问该网站时,恶意代码将被执行,可能导致用户信息泄露、网站内容被篡改等后果。这种攻击方式常见于接受...
对应网页动态部分或涉及Iframe框架嵌入,涉及Ueditor等,无法通过XPath路径采集的,则通过Js注入,实现Js调用C#函数,实现内容的完整采集。采集完成后支持可以导出Excel或Xml。本程序适合各种网页内容采集、分析、...
右下角悬浮(纯js注入,无需提前写CSS样式) 经过几次修改,支持各大浏览器和IE6等老版本浏览器。
在这个场景中,"Chrome扩展程序可将自定义JavaScript注入每个页面"指的是开发者可以利用Chrome浏览器的扩展开发机制,创建插件并在用户浏览网页时自动在页面上下文中执行自定义的JavaScript代码,实现各种定制化需求...
JavaScript注入漏洞是一种常见的网络应用安全问题,它允许攻击者通过Web应用程序在用户浏览器中执行恶意脚本代码。本文将深入探讨JavaScript注入漏洞的原理,并提供相应的防范措施。 ### JavaScript注入漏洞的原理 ...
应同学邀请,演示如何使用 PyQt5 内嵌浏览器浏览网页,并注入 Javascript 脚本实现自动化操作。 下面测试的是一个廉价机票预订网站(http://www.flyscoot.com/),关键点如下 使用 QWebEngineView 加载网页,并显示...
防止JavaScript注入攻击的关键在于正确处理用户输入的数据。以下是一些预防策略: 1. **HTML转义**:如上所述,对用户输入的数据进行HTML转义是最基本的防御手段,可以防止浏览器将它们解释为JavaScript代码。 2. ...