php如何对js实现高度混淆,javascript 混淆
关键词:javascript 混淆 JsObfuscator Jsmin custom_rhino.jar
现在基于javascript的应用越来越复杂,为了提高代码的安全性和下载速度,需要对代码进行混淆和压缩。以前研究过几天js混淆,现在项目需要又拉出来溜溜,发现不少问题。简单讨论下三种我找到的混淆方法,以及改进。
一、JsObfuscator 是一个可执行的混淆压缩器,主要进行变量,函数名替换,去掉注释空行换行,压缩率比较好 。有两个地方让我觉得不爽,它每次只能压缩一人文件,它还会在每个函数结束后加个“;”,这应该不符合js的语法。当然牛人可以写个程序循环处理,但不知道能不能生成自己想要得目录,不利于发布代码。可配置性差。
二、第二个常用的是jsmin,他又c版本和php两个版本,都是源码。像我这样做web基本把c交给老师了,最简单也得找个turbo c,好像也有人用.net给它写了个界面,还得装.net环境,c版也被pass了。 了解php开发的可以用php版了,刚好前两天学了下php,就现学现卖吧。
2.把jsmin.php放在apache的htdocs目录下。
3.写个compress.php
require 'jsmin.php';
// Output a minified version of example.js. echo JSMin::minify(file_get_contents('1039map.js'));
?>
他直接把代码输出到页面,这有个鸟用啊,不过有源码,可以改造它的先天不良基因。 我给它加了两个方法,一个建文件夹(存放压缩后的代码),一个新建压缩文件,并改造了minify()方法。
///创建文件夹
public function createdir($dir) {
if(file_exists($dir) && is_dir($dir)){ }
else{ mkdir ($dir,0777); }
}
///创建文件
function creat_file($PATH,$name) {
$sFile = $name; if (file_exists($PATH.$sFile)) { creat_file(); }
else { $fp= fopen($PATH.$sFile,"w"); fclose($fp); }
return $sFile;
}
//$js:压缩文件名 ,$folder :存储路径,$fileName :压缩后的文件名
public static function minify($js,$folder,$fileName) {
$jsmin = new JSMin($js);
$file = $jsmin->creat_file($folder,$fileName);
$content = $jsmin->min();
$fp = fopen($folder.$fileName, 'w+');
fwrite($fp, $content);
fclose($fp);
return $jsmin->min(); }
调用页面代码compress.php:
echo JSMin::createdir("js_compress");
echo JSMin::minify(file_get_contents('index.js'),"js_compress/",'index.js');
?>
当然你可以compress.php执行多个压缩 。
未完待续。
php如何对js实现高度混淆,javascript 混淆相关推荐
- 第27讲:令人抓狂的 JavaScript 混淆技术
我们在爬取网站的时候,经常会遇到各种各样类似加密的情形,比如: 某个网站的 URL 带有一些看不懂的长串加密参数,想要抓取就必须要懂得这些参数是怎么构造的,否则我们连完整的 URL 都构造不出来,更不 ...
- 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战【转】
信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点. HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保 ...
- video.js视频高度自适应解决方法
video.js视频高度自适应解决方法 1.引入两个外部文件,或者下载到本地 <link href="https://unpkg.com/video.js/dist/video-js. ...
- JavaScript混淆安全加固
文章目录 前言 语法树AST混淆 变量名混淆 常量提取 常量混淆 运算混淆 语法丑化 动态执行 流程混淆 顺序扁平化 条件扁平化 不透明谓词 脚本加壳 反调试 定时执行 随机执行 内容监测 代码自检 ...
- Java 压缩/混淆 JavaScript 代码
基本上都是自己写的工具构建前端工程,压缩/混淆 JavaScript 代码的工具必不可少.我们是 Java 平台的,就是说用 Java 去压缩 JS,这样比较方便.虽然咱们可以外部调用 node 等专 ...
- js混淆 反混淆 在线
js反混淆地址:http://www.bm8.com.cn/jsConfusion/ 在线javascript 混淆http://www.moralsoft.com/jso-online/hdojso ...
- 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战
信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点. HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保 ...
- JavaScript 混淆和解密特性
JavaScript 混淆和解密特性 变量重命名:混淆时会重命名变量,使用随机字符串或者字母表示,解密时需要将变量还原成原来的名称. 函数重命名:同样的,混淆时会重命名函数,使用随机字符串或者字母表示 ...
- JavaScript 混淆技术
根据JShaman(JShaman是专业的JavaScript代码混淆加密网站)提供的消息,JavaScript混淆技术大体有以下几种: 变量混淆 将带有JS代码的变量名.方法名.常量名随机变为无意义 ...
最新文章
- Android数据存储方式
- 物联网智能硬件设备身份验证机制
- Python如何进行内存管理?
- Spring 依赖注入方式详解
- TensorFlow调试常见问题(pycharm)
- 在预览fastreport报表之前改变一些报表对象的属性
- ds证据理论python实现_ALI模型理论以及Python实现
- HTML渐变背景不重复,如何停止重复自身的背景颜色渐变? (css)
- 【android开发】:android真机测试
- JavaScript的作用域(1)
- php_os用法,使用终端,如何让OS X使用MAMP版本的PHP
- java程序包condition不存在,Ant javac:包x不存在,但我将x.jar添加到java构...
- 24、求一个3×3的整型矩阵对角线元素之和
- iOS 应用内付费(IAP)开发步骤一:填写相关的税务,银行,联系人信息;
- 怎样用计算机粉碎文件夹,粉碎文件夹怎么操作 粉碎文件夹操作方法
- python中re.search()函数的用法
- 苹果手机在哪里清理内存_iphone苹果手机内存不足之清理大法
- 微信授权登陆【yixiyun】
- AHB to APB bridge
- 前端开发面试问题及答案
热门文章
- 马尔可夫网络和贝叶斯网络的一些总结
- 数字通信原理实验一:信号频谱分析实验
- J1939协议中CAN ID 与PGN互换--遇到了广播报文
- Beauty Box for Premiere Pro Mac(pr人像磨皮美容插件)
- PreScan快速入门到精通第四十二讲点云传感器
- Oracle不能用system用户 ORA-01017
- 参照企业微信审批业务,在Winform开发框架中工作流模块的实现业务审批
- Java数组02:数组的使用,多维数组,Arrays类,冒泡排序和稀疏数组
- 《Unix环境高级编程》---文件系统
- c语言中fcntl.h函数库,fcntl函数的使用详解