これはセットアップです。nodejsのSQLインジェクションから身を守る最善の方法
nodejsサーバーにプロシージャのパラメータを送信するajaxを使用してPOSTを送信しています。この特定のケースでは、ユーザー名とコード。
このPOSTは、これら2つのパラメータを使用するプロシージャを実行するWebサービスにrequest.getを呼び出します。
フロントエンドユーザーが自分のWebサービスのURL、私のrequest.get URLまたは私のプロシージャ名を見ることができないが、彼はまだパラメータは(ユーザー名、コード)送信されて見ることができますapp.post('url/:username/:code', function(req,res,next){
var procedure = 'EXECUTE procedureName'+req.params.code;
request.get('myWslink/myService.asmx/service?
callback=&userName='+req.params.username+'&procedureName='+procedure, function(){});
});
例えば
と彼がすることができますこれらのパラメータを変更して、彼が実行するはずのプロシージャを実行できるようにします。
また、POSTリクエストを複数回呼び出すこともできます。挿入プロシージャの場合は、複数の迷惑メールをデータベースに埋め込むこともできます。
これらの悪用から身を守るにはどうすればよいでしょうか?
実行するプロシージャの名前を動的に渡すのが最善の方法です。少なくとも、暗号化は難しいはずです。 –