2010-09-29 73 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插件。

唯一的強項將是在網頁中生成強大的散列,以加密 從網頁客戶端返回的值。