我发现这个javascript非常奇怪,当我在我的控制台浏览器上运行它会给我一个警告,其中包含以下消息
'始终警惕包含引号的Javascript.没有报价=安全!'
我对此非常好奇(实际上甚至不知道这是否是一件事,对某些事情有用吗?)
如果你们中的任何一个人想分享关于这种"技术"的知识,我将非常感激!:)
for(A in {A:0}){alert(unescape(escape(A).replace(/u.{8}/g,[])))};Run Code Online (Sandbox Code Playgroud)
这篇博文详细解释了这一点:https://www.stefanjudis.com/blog/hidden-messages-in-javascript-property-names/
这个片段的主要"技巧"是{在A这里和这里之间有很多看不见的unicode字符:
{A:0}
Run Code Online (Sandbox Code Playgroud)
你可以看到他们的代码点,如下所示:
Object.keys({A:0})[0].split("").map(x => x.codePointAt(0))
// [65, 56128, 56684, 56128, 56695, 56128, 56673, 56128, 56697, 56128, 56691, 56128, 56608, 56128, 56674, 56128, 56677, 56128, 56608, 56128, 56695, 56128, 56673, 56128, 56690, 56128, 56697, 56128, 56608, 56128, 56687, 56128, 56678, 56128, 56608, 56128, 56650, 56128, 56673, 56128, 56694, 56128, 56673, 56128, 56691, 56128, 56675, 56128, 56690, 56128, 56681, 56128, 56688, 56128, 56692, 56128, 56608, 56128, 56675, 56128, 56687, 56128, 56686, 56128, 56692, 56128, 56673, 56128, 56681, 56128, 56686, 56128, 56681, 56128, 56686, 56128, 56679, 56128, 56608, 56128, 56689, 56128, 56693, 56128, 56687, 56128, 56692, 56128, 56677, 56128, 56691, 56128, 56622, 56128, 56608, 56128, 56654, 56128, 56687, 56128, 56608, 56128, 56689, 56128, 56693, 56128, 56687, 56128, 56692, 56128, 56677, 56128, 56691, 56128, 56608, 56128, 56637, 56128, 56608, 56128, 56691, 56128, 56673, 56128, 56678, 56128, 56677, 56128, 56609]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |