#info #design #web #lib #ali #security 据悉今天阿里 Antd #GitHub 账号被盗
https://t.me/im_RORIRI/870
上频道言,相关事件:
https://github.com/alibaba/nacos/issues/4593
https://t.me/im_RORIRI/870
上频道言,相关事件:
https://github.com/alibaba/nacos/issues/4593
Telegram
螺莉莉的黑板报
【本报讯】阿里员工因未开 2FA 造成账号失窃,仓库 ownership 被转移,Ant Design 仓库失联一上午。
我再强调一遍,综合 HoHoHo 事件,Antd 是一个完全不可信任的 UI 库,无论是工程质量还是开发人员的基本素质都达不到一般开源产品的水平,我们不推荐您在自己的项目中使用任何阿里开源产品。
我再强调一遍,综合 HoHoHo 事件,Antd 是一个完全不可信任的 UI 库,无论是工程质量还是开发人员的基本素质都达不到一般开源产品的水平,我们不推荐您在自己的项目中使用任何阿里开源产品。
Forwarded from 「VoP」維尼之聲 - Voice of Pooh🔊
#js #code [doge] 哈!手机上一次就写对了
好耶!是元编程
妈耶…… 看来还是包装下比较好😓 这个代码不可能短
#GitHub 上找了半天最终发现 https://github.com/bnoguchi/hooks-js 和 https://github.com/buddyspike/easy-intercept 是可以用的,另外还有三四个标准研究性的 intercept 和一大堆只能针对 XHR API 的🌚👍
https://github.com/search?p=4&q=JS+intercept&type=Repositories
你前端还是你前端,复用都懒得做🌝🤔
"JavaScript 能表达的程序最终都会被写出来"
前端娱乐圈✅
const swap=(k,a,b)=>{ let va=a[k]; a[k]=b[k]; b[k]=va; },
hook=(o,op_tab)=>{
let old={};
for (let k in op_tab) { swap(k, old, o); let f=op_tab[k]; o[k]=function hooked(...args) {args.push(old); return f.apply(this, args)}; }
let attrs = Object.keys(op_tab);
function undo() { this.attrs.forEach(k => swap(k, old, o)); }
return {attrs, undo};
}
function add(a,b) {return a+b}
h=hook(window, {add: (a,b,old)=>{console.log(a);return old.add(a,b)}})
不过有个问题, 不能同时兼容 prototype ,没 bound好耶!是元编程
const
swap=(k,a,b)=>{ let va=a[k]; a[k]=b[k]; b[k]=va; },
boundCopy=(!!Proxy)? (o,ks)=>self=>new Proxy({}, {get: (o1,k)=>o[k].bind(self)}) : (o,ks)=>self=>{ let bound={}; for (let k of ks) Object.defineProperty(bound, k, {get: ()=>o[k].bind(self)}); return bound; },
hook=(o,op_tab)=>{
let old={}, attrs = Object.keys(op_tab);
for (let k of attrs) { swap(k, old, o); let f=op_tab[k]; o[k]=function hooked(...args) {args.push(boundCopy(old, attrs)); return f.apply(this, args)}; }
function undo() { this.attrs.forEach(k => swap(k, old, o)); }
return {attrs, undo};
} orig(this).fn 这样用:let hooky = {
log(...ho) { hookAll(...ho, (...args,orig)=>{ console.log(args); let res=orig(this)[ho[1]](...args); console.log(res); return res; }); },
breakIf(p, ...ho) {},
stopIf(p, ...ho) {},
onValues(op, ...ho) {},
insts: {},
saveInstances(...ho) {}
} 妈耶…… 看来还是包装下比较好😓 这个代码不可能短
#GitHub 上找了半天最终发现 https://github.com/bnoguchi/hooks-js 和 https://github.com/buddyspike/easy-intercept 是可以用的,另外还有三四个标准研究性的 intercept 和一大堆只能针对 XHR API 的🌚👍
https://github.com/search?p=4&q=JS+intercept&type=Repositories
你前端还是你前端,复用都懒得做🌝🤔
"JavaScript 能表达的程序最终都会被写出来"
前端娱乐圈✅
GitHub
GitHub - bnoguchi/hooks-js: Augment your methods with pre and post hooks
Augment your methods with pre and post hooks. Contribute to bnoguchi/hooks-js development by creating an account on GitHub.
#php #js #web 双重傻逼就是傻逼两次。 第一次混淆 sql 代码和数据已经够弱智,第二次是暴露 http 不管传输层在应用层做脑残防护,三秒给你监听代码扬了。
https://github.com/w2sft/BrowserWAF #github #china #haha
“ 防自动化攻击: 如动画中,浏览器下方,开始时候密码输入框的id和name都为空,也就意味着通过识别元素id和name属性的方式,是无法被定位到的,那么也就无法进行自动赋值,也就无法进行暴力破解、撞库等攻击(burp嗅探重放式的除外)。
同时,注意有一个属性为hidden的input框。它是被随机插入在页面中的,这样也就可以防止使用xpath方式定位的攻击。
🌚???你还知道 xpath 啊,那你知不知道随机一个 <input hidden> 也能被自动过滤?
https://github.com/w2sft/BrowserWAF #github #china #haha
“ 防自动化攻击: 如动画中,浏览器下方,开始时候密码输入框的id和name都为空,也就意味着通过识别元素id和name属性的方式,是无法被定位到的,那么也就无法进行自动赋值,也就无法进行暴力破解、撞库等攻击(burp嗅探重放式的除外)。
同时,注意有一个属性为hidden的input框。它是被随机插入在页面中的,这样也就可以防止使用xpath方式定位的攻击。
🌚???你还知道 xpath 啊,那你知不知道随机一个 <input hidden> 也能被自动过滤?