2010-09-29 76 views
1

我打算将JavaScript代码存储在MongoDB(No-SQL)数据库中。加密JavaScript代码,以防止MongoDB中的JavaScript注入?

但为了防止JavaScript注入,我想加密字符串中的JavaScript代码。

有没有一种方法来加密它,然后解密它,而没有缺陷的JavaScript代码?

+0

什么?我认为NoSQL的意思是,你不会通过将数据连接到字符串查询来引发注入问题? – bobince 2010-09-29 22:24:22

+0

@bobince:http://www.kalzumeus.com/2010/09/22/security-lessons-learned-from-the-diaspora-launch/阅读标题:NoSQL并不意味着没有SQL注入 – 2010-09-29 22:27:01

+0

“但要阻止JavaScript注入...“以及这种注入会发生在哪里? – epascarello 2010-09-29 22:53:16

回答

1

有很多其他网络的东西考虑到这一点。

我建议你看一下jQuery插件加密jquery plugin encryption

我personnally没有使用这些加密工具之一,但整合似乎很容易, 当然你应该随机生成一个加密密钥:

例如这里是jqCrypt的例子:

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.jqcrypt.js"></script> 
<script type="text/javascript"> 
    $(function(){ 
     $('#form_id').jqcrypt({ 
      keyname: 'jqckval', 
      randomkey: false, 
      key:  'some_key_value', 
      callback: function(form){ 
       form.submit(); 
      } 
     }); 
    }); 
</script> 

这里应该是解密例子

function c2sdecrypt($s,$k){ 
    $k = base64_decode(urldecode($k)); 
    $s = urldecode($s); 
    $k = str_split(str_pad('', strlen($s), $k)); 
    $sa = str_split($s); 
    foreach($sa as $i=>$v){ 
     $t = ord($v)-ord($k[$i]); 
     $sa[$i] = chr($t < 0 ?($t+256):$t); 
    } 
    return urldecode(join('', $sa)); 
} 

从jqCrypt插件。

唯一的强项将是在网页中生成强大的散列,以加密 从网页客户端返回的值。