首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过创建un uatable ("unparsable cruft") JSON来提高安全性?

通过创建un uatable ("unparsable cruft") JSON来提高安全性?
EN

Stack Overflow用户
提问于 2012-04-26 07:13:22
回答 1查看 676关注 0票数 3

我们正在考虑对我们的json使用不可解析的curft方法作为额外的安全级别。

在研究这些方法时,我遇到了谷歌的while(1);和脸书的for(;;);然后又提到了{}&&

我看过围绕while(1);的评论,说数字1可能会被击败,所以我的方法是使用for(;;);

然后我遇到了{}&&,它将json呈现为无效的,但它仍然可以被解析/求值。请参阅本文以供参考:http://www.sitepen.com/blog/2008/09/25/security-in-ajax/

你的方法是什么?使用无法解析的curft进行ajax调用时,您的函数看起来像什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-26 07:19:24

我只是一直使用根对象。如上所述:

JSON只有可能通过一个数组的根来劫持

数据。当根是基元时,基元值不会触发构造函数。当根是一个对象时,它不是有效的JavaScript语法,因此不能被解析。

请注意,具有根原语(例如,您的响应只是5)不是有效的JSON。the RFC的第2节说:

文本是序列化的对象或数组。

JSON-text =对象/数组

这并不是什么负担,因为我(和许多站点)通常使用信封格式。例如:

代码语言:javascript
运行
复制
{
  "header": {...},
  "data": {...}
}

或者:

代码语言:javascript
运行
复制
{
  "status": {...},
  "data": {...}
}

等。

在这种情况下,任何数组都只是数据的值,所以您可以提供语法上有效的JSON,而不会有任何劫持风险。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10325100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档