相关疑难解决方法(0)

为什么Google会在(1)之前提前; 他们的JSON回复?

为什么Google会while(1);在其(私人)JSON响应前加上?

例如,这是在Google日历中打开和关闭日历时的响应:

while(1);[['u',[['smsSentFlag','false'],['hideInvitations','false'],
  ['remindOnRespondedEventsOnly','true'],
  ['hideInvitations_remindOnRespondedEventsOnly','false_true'],
  ['Calendar ID stripped for privacy','false'],['smsVerifiedFlag','true']]]]
Run Code Online (Sandbox Code Playgroud)

我认为这是为了防止人们eval()对它进行操作,但你真正需要做的就是更换while然后你就可以了.我认为eval预防是为了确保人们编写安全的JSON解析代码.

我已经在其他几个地方看到了这种情况,但谷歌(邮件,日历,通讯录等)的情况更是如此.奇怪的是,谷歌文档开始了&&&START&&&,谷歌联系人似乎开始while(1); &&&START&&&.

这里发生了什么?

javascript security ajax json

3940
推荐指数
7
解决办法
51万
查看次数

为什么需要JsonRequestBehavior?

为什么Json Request Behavior需要?

如果我想将HttpGet请求限制为我的操作,我可以使用该[HttpPost]属性修饰操作

例:

[HttpPost]
public JsonResult Foo()
{
    return Json("Secrets");
}

// Instead of:
public JsonResult Foo()
{
    return Json("Secrets", JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

为什么[HttpPost]不够?
为什么框架会JsonRequestBehavior.AllowGet为我们所拥有的每一个"捣乱"我们JsonResult.如果我想拒绝获取请求,我将添加该HttpPost属性.

.net c# security asp.net-mvc asp.net-mvc-3

369
推荐指数
4
解决办法
19万
查看次数

如何从WCF服务返回干净的JSON?

我试图从WCF服务返回一些JSON.此服务只是从我的数据库返回一些内容.我可以得到数据.但是,我担心我的JSON格式.目前,返回的JSON格式如下:

{"d":"[{\"Age\":35,\"FirstName\":\"Peyton\",\"LastName\":\"Manning\"},{\"Age\":31,\"FirstName\":\"Drew\",\"LastName\":\"Brees\"},{\"Age\":29,\"FirstName\":\"Tony\",\"LastName\":\"Romo\"}]"} 
Run Code Online (Sandbox Code Playgroud)

实际上,我希望我的JSON格式尽可能干净.我相信(我可能不正确),以干净的JSON表示的相同结果集合应该如下所示:

[{"Age":35,"FirstName":"Peyton","LastName":"Manning"},{"Age":31,"FirstName":"Drew","LastName":"Brees"},{"Age":29,"FirstName":"Tony","LastName":"Romo"}]
Run Code Online (Sandbox Code Playgroud)

我不知道"d"来自哪里.我也不知道为什么要插入转义字符.我的实体如下所示:

[DataContract]
public class Person
{
    [DataMember]
    public string FirstName { get; set; }

    [DataMember]
    public string LastName { get; set; }

    [DataMember]
    public int Age { get; set; }

    public Person(string firstName, string lastName, int age)
    {
        this.FirstName = firstName;
        this.LastName = lastName;
        this.Age = age;
    }
}
Run Code Online (Sandbox Code Playgroud)

负责返回内容的服务定义为:

[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class TestService
{
    [OperationContract]
    [WebGet(ResponseFormat = WebMessageFormat.Json)]
    public string GetResults()
    {
        List<Person> results = new List<Person>();
        results.Add(new Person("Peyton", "Manning", …
Run Code Online (Sandbox Code Playgroud)

wcf json

230
推荐指数
4
解决办法
22万
查看次数

91
推荐指数
3
解决办法
5万
查看次数

是否可以在现代浏览器上进行"JSON劫持"?

最近我读了一些关于'JSON劫持'的文章,其中一些是在这里.

所以,我尝试在我的浏览器,Chrome 17(dev),Firefox 8和IE8上进行以下操作.

  • override Object或Array构造函数
  • 修改__defineSetter__方法
  • 修改defineProperty方法

但我无法对(文字)JSON数据做任何事情.

"JSON劫持"问题是否都在现代浏览器上解决了?或者我该如何重现它?

javascript json

11
推荐指数
1
解决办法
2064
查看次数

避免json劫持的")]}',\n"和"{} &&"之间的区别

在阅读有关如何避免json劫持的内容时,我遇到了各种方法,包括POST一切或预先响应,因此它们不是有效的JavaScript.

最常见的前置方式似乎是添加{} &&到对象或数组前面.Angular建议先)]}',\n.

为什么棱角不使用更标准的{} &&方法?一个人不完全安全吗?在JavaScript中更难使用吗?除了角度之外,采用不那么受欢迎的方法是否有充分的理由?

javascript security json angularjs

11
推荐指数
1
解决办法
1605
查看次数

为什么使用POST方法可以防止json劫持?

jsonGet方法中返回时,我遇到了以下 ASP.NET MVC 错误:

此请求已被阻止,因为在 GET 请求中使用此请求时,敏感信息可能会泄露给第三方网站。要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet。

显然这个漏洞被称为json Hijacking这篇文章解释了当json使用Get. 但是返回json一个Post方法是安全的。

为什么要改变GetPost防止这种攻击?

javascript security ajax json csrf

8
推荐指数
1
解决办法
1451
查看次数

标签 统计

json ×6

javascript ×4

security ×4

ajax ×2

.net ×1

angularjs ×1

arrays ×1

asp.net-mvc ×1

asp.net-mvc-3 ×1

c# ×1

csrf ×1

rfc4627 ×1

wcf ×1