小编sch*_*ckb的帖子

JSON字符编码 - 浏览器是否支持UTF-8,还是应该使用数字转义序列?

我正在编写一个使用json来表示其资源的web服务,我有点想到编写json的最佳方法.阅读json rfc(http://www.ietf.org/rfc/rfc4627.txt)显然首选的编码是utf-8.但rfc还描述了一种用于指定字符的字符串转义机制.我假设这通常用于转义非ascii字符,从而使得得到的utf-8有效ascii.

所以,假设我有一个json字符串,其中包含非ascii的unicode字符(代码点).我的webservice应该只是utf-8编码并返回它,还是应该逃脱所有那些非ascii字符并返回纯ascii?

我希望浏览器能够使用jsonp或eval执行结果.这会影响决定吗?我对各种浏览器对utf-8的javascript支持的了解很少.

编辑:我想澄清一下,我对如何对结果进行编码的主要关注点是关于结果的浏览器处理.我读过的内容表明,特别是在使用JSONP时,浏览器可能对编码很敏感.我没有找到关于这个主题的任何非常好的信息,所以我将不得不开始做一些测试,看看会发生什么.理想情况下,我只想逃避所需的几个字符,只需对utf-8进行编码即可.

unicode json web-services utf-8

78
推荐指数
5
解决办法
19万
查看次数

比较序列的优雅方式

python是否提供了一种检查不同类型序列"相等"的优雅方法?以下工作,但它们对于python代码看起来相当丑陋和冗长:

def comp1(a, b):
    if len(a) != len(b):
        return False
    for i, v in enumerate(a):
        if v != b[i]:
            return False
    return True
Run Code Online (Sandbox Code Playgroud)

由于创建了第三个序列,以下内容有点短,但效率也较低:

def comp2(a, b):
    for l, r in map(None, a, b):
        if l != r:
            return False
    return True
Run Code Online (Sandbox Code Playgroud)

将其中一个例子列入列表理解并不是我正在寻找的.

编辑:理想情况下,我正在寻找一种在比较期间不会创建另一个序列的解决方案.

python

11
推荐指数
3
解决办法
7366
查看次数

Rails默认的CSRF保护是不安全的吗?

默认情况下,Rails中的表单后期CSRF保护会为用户创建一个仅在用户会话更改时更改的真实性令牌.我们的一位客户对我们的网站进行了安全审核,并将其标记为问题.

审计员的声明是,如果我们还有一个XSS漏洞,攻击者可以抓取另一个用户的真实性令牌,并利用它进行CSRF攻击,直到用户会话到期为止.

但在我看来,如果我们有一个类似的XSS漏洞,攻击者可以轻松地抓取另一个用户的会话cookie并直接登录该用户.或者甚至只是在用户受到攻击时从脚本调用我们的REST Api.在这种情况下,能够发起CSRF攻击似乎并不会更糟......问题在于XSS漏洞.

我错过了什么吗?Rails中的默认CSRF保护是否存在实际问题?

security xss ruby-on-rails csrf

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

了解sha-1碰撞的弱点

根据各种消息来源,寻找sha-1碰撞的攻击已经改进到2 ^ 52次操作:

http://www.secureworks.com/research/blog/index.php/2009/6/3/sha-1-collision-attacks-now-252/

我想知道的是这些发现对未受攻击的系统的影响.这意味着如果我对随机数据进行散列,那么碰撞的统计几率是多少?换句话说,最近的研究表明,蛮力生日攻击有更高的机会发现最初提出的碰撞吗?

一些文章,如上所述,表示通过暴力获得SHA-1碰撞需要2 ^ 80次操作.大多数消息来源说2 ^ 80是一个理论数字(我假设因为即使在其摘要空间上也没有完美地分配散列函数).

基本哈希分布中任何已公布的sha1冲突弱点是什么?或者只是导致数学攻击导致碰撞的几率增加?

我意识到最终它只是一场赔率游戏,并且它们是一个无限小的变化,你的第一个和第二个消息将导致碰撞.我也意识到即使是2 ^ 52也是一个非常大的数字,但我仍然想了解对不受攻击的系统的影响.所以请不要回答"不要担心".

hash cryptography sha1

9
推荐指数
3
解决办法
7523
查看次数

你最unpythonic的代码片段

我是一名经验丰富的python开发人员,仍然会自己编写正确但非语音的代码.我认为看到人们编写的python代码的小例子在某种程度上与普遍优先的做事方式发生冲突可能具有启发性和娱乐性.

我对您实际编写的代码感兴趣而不是发明示例.这是我的一个:在代码中期望一个可能为空的序列或我没有的序列

if data is not None and len(data) > 0:
Run Code Online (Sandbox Code Playgroud)

我后来把它减少到了

if data:
Run Code Online (Sandbox Code Playgroud)

更简单的版本允许额外的真值,如True或10,但这没关系,因为调用者犯了一个错误,并将从if中的语句中获得异常.

python

4
推荐指数
3
解决办法
1220
查看次数

标签 统计

python ×2

cryptography ×1

csrf ×1

hash ×1

json ×1

ruby-on-rails ×1

security ×1

sha1 ×1

unicode ×1

utf-8 ×1

web-services ×1

xss ×1