2010-09-29 6 views
1

Je vais stocker du code javascript dans la base de données MongoDB (No-SQL). Mais pour empêcher l'injection javascript, je veux crypter le code javascript qui est dans une chaîne.Crypter le code javascript pour empêcher l'injection javascript dans MongoDB?

Existe-t-il un moyen de le chiffrer, puis de le déchiffrer sans avoir un code javascript défectueux?

+0

Quoi? Je pensais que le but de NoSQL était que vous n'alliez pas invoquer des problèmes d'injection en concaténant des données dans une requête de chaîne. – bobince

+0

@bobince: http://www.kalzumeus.com/2010/09/22/security-lessons-learned-from-the-diaspora-launch/ Lire le titre: NoSQL ne signifie pas aucune injection SQL –

+0

"Mais à empêcher l'injection de javascript ... "Et où cette injection se produirait-elle? – epascarello

Répondre

1

Il y a beaucoup de choses sur le web vu cela.

Je vous suggère de jeter un oeil à chiffrement plugin jquery jquery plugin encryption

Je personellement pas utilisé l'un de ces outils de chiffrement, mais l'intégration semble assez facile, et bien sûr, vous devez générer une clé de chiffrement aléatoire:

Par exemple est ici l'exemple de 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> 

Et ici devrait être l'exemple

déchiffrer
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)); 
} 

À partir du plugin jqCrypt.

Le seul point fort sera la génération d'un hachage fort dans la page Web, pour chiffrer la valeur renvoyée par le client de page Web.

Questions connexes