SQL インジェクション Azure DocumentDB ストアド プロシージャを回避するにはどうすればよいですか?
入力 (ホワイトリストに登録された文字) をサニタイズする以外に、ここでのベスト プラクティスは何ですか?
たとえば、MSDN の例を基にした次のストアド プロシージャを考えてみましょう。
function simple_sp(s1) {
var context = getContext();
var collection = context.getCollection();
var response = context.getResponse();
collection.queryDocuments(collection.getSelfLink(),
'SELECT * FROM Families f where f.id = "' + s1 + '"', {},
function(res){}
);
}
その s1 パラメータは、SQL をクエリに挿入する標準的な例です。これまでのところ、クエリをパラメータ化する方法も見つかりませんでした。