有些时候希望对于一个常光顾的页面进行一些自动化处理。
对于一些可以写插件的浏览器来说,直接写插件可能会比较简单。
但是并不是所有的浏览器都支持插件,另外插件也不可以在不同的浏览器间共用。
这时候,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中JS注入例子
(@Deprecated-推荐使用crosswalk-js-inject)用于Android端的Js注入,从safe-java-js-webview-bridge改进而来,能够在java与js端间相互动态传递函数。
一个完整的js注入网页的demo,可以直接解压后使用chrome加载该插件,在开发模式下加载文件夹
网页js脚本注入,可执行任意代码。这里有个实例教程,通过注入实现跳过验证码。
纯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"> ...
Android Webview upload 图片上传 ! 导读: ...扩充 webview 防止js注入 解决 android webview 在4.4系统上无法使用情况 博客地址 : http://blog.csdn.net/aaawqqq/article/details/51087805
对于使用模拟登陆等操作来...但是本文,提到的设置内容能够有效根治网上的一大堆无效的js注入教程,本文详细讲解,通过如何设置,来达到仿被检测的问题,一次阅读终生受益,再也不为使用模拟登陆被限制的问题而头疼。
Uipath注入JS
本文告诉大家什么是js注入,讨论防止 ASP.NET MVC 应用程序受到 JavaScript 注入攻击的两种技术,感兴趣的小伙伴们可以参考一下
对应网页动态部分或涉及Iframe框架嵌入,涉及Ueditor等,无法通过XPath路径采集的,则通过Js注入,实现Js调用C#函数,实现内容的完整采集。采集完成后支持可以导出Excel或Xml。本程序适合各种网页内容采集、分析、...
右下角悬浮(纯js注入,无需提前写CSS样式) 经过几次修改,支持各大浏览器和IE6等老版本浏览器。
应同学邀请,演示如何使用 PyQt5 内嵌浏览器浏览网页,并注入 Javascript 脚本实现自动化操作。 下面测试的是一个廉价机票预订网站(http://www.flyscoot.com/),关键点如下 使用 QWebEngineView 加载网页,并显示...
通过Javascript注入实施的PDF攻击.pdf
初次接触JavaScript注入漏洞后,如果不对这种漏洞的作用机理仔细分析并提取出其发生的某种模式,你就不能做到快速的发现项目中可能存在的所有注入风险并在代码中防范。 发生模式: JavaScript注入漏洞能发生作用主要...
浅谈html转义及防止javascript注入攻击的方法.docx
h5页面注入js代码
servlet过滤器Api 以及乱码处理.javascript注入问题
给爬虫业务使用的代理ip池和MITIMProxy,浏览器群控、手机群控、js注入、代理高可用、代理session保持.zip
主要为大家详细介绍了js注入,黑客之路必备!本文告诉大家什么是js注入,如何进行js注入攻防,感兴趣的小伙伴们可以参考一下
网络注入 Chrome扩展程序可将自定义JavaScript注入每个页面