- 注册时间
- 2012-9-20
- 最后登录
- 2024-11-14
- 阅读权限
- 200
- 积分
- 5477
- 精华
- 0
- 帖子
- 1152
|
最强的方法qiqi
这么简单。。。服务端获取socket链接,然后用curl构造一个request,request到80,但是有误伤可能性。
最简单的就是javascript了,可以使用各种密文,然后再用javascript解密,这样就防止了反向代理自动替换特征码的可能性。
比如说后端一天自动更新一次scripts,密匙为今天的日期,密文自动生成,这样就替换不了了 还有一个方式就是静态资源重定向,匹配静态资源规则到host的一个特定端口,当然他把你这个端口代理了,就没办法了。(可以拓展下,还有其他方法的)
最简单有效的还是javascript
而且还有一个问题,反代流量大了,会触发litmit request。很多方式的。 HS反驳道
JS push 到前端的时候, 就不存在秘密了。
当然我不是专门搞破解的。 但是 js 混淆 或者 加密, 强度有多高呢 ? 对一个熟悉 js 的加密算法 的人来说, 应该不难破解的。 qiqi接招
混淆过后的,可以做到把一个var a = "abc";
变成var a; var b = "xxxxxxxxx"; a= b[x];
基本上不能用替换脚本 比如说 console.log
变态的可以做到
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('z 9$=["","\\\\\\A\\y","\\\\\\t","\\\\\\t","\\q",\'\\w\\x\\B\\F\\l\\G\\l\\E\\C\',"\\D\\j\\v\\o\\j\\m\\r","\\m\\j\\q","\\p\\r\\o\\p"];u(h(a,b,c,d,e,f){e=h(g){i g};L(! 9$[0].n(/^/,H)){k(;c--;)f[c]=d[c]||c;d=[h(g){i f[g]}];e=h(){i 9$[1]};c=J};k(;c--;)d[c]&&(a=a.n(I( 9$[2]+e(c)+ 9$[3], 9$[4]),d[c]));i a}( 9$[5],s,s,[ 9$[6], 9$[7], 9$[8]],K,{}));',48,48,'|||||||||_||||||||function|return|x6f|for|x22|x6c|replace|x73|x74|x67|x65|0x3|x62|eval|x6e|x30|x2e|x2b|var|x77|x31|x3b|x63|x29|x28|x32|String|RegExp|0x1|0x0|if'.split('|'),0,{}))
原语句是console.log('test') HS继续反驳
关键点不是混淆。
你再混淆也需要提交到后台吧。
你提交的数据, 我需要动吗? 我只需要找到你的关键的那个变量, 然后我反代页面时代码上面加一句,把提交的参数剥离, 提交到我反代端,模拟正常用户提交就好了。
关键是找到有效的机制, 区别开正常访客和反代访客。在没有确定这个机制之前,讨论如何混淆,如何加密, 根本就没啥意义。
|
|