私はクライアント側のユーザ設定マネージャを持っています。設定はWebサービスを通じて保存されます。私はそれらをjsonに直列化しています。 jsonは送信する前に操作できるので、私はそれをサーバー上で検証したいと思います。ユーザ入力セキュリティ.net
ベストプラクティスとは何ですか、私は何を探す必要がありますか? デシリアライズ前に検証しますか?ユーザーはどのような悪意のある入力を使用できますか?彼はjsonを操作して、デフォルトのasp net javascriptデシリアライゼーションを使用して非直列化で何とか私に害を及ぼすことができますか?
var userinput = { param1 : "test", categories : ["2312", "4324", "2122"] }
これはサーバーに送信され、シリアル化されます。 サーバー上でオブジェクトグラフに逆シリアル化されます。
public class usersettings
public property param1 as string
public property categories as string()
end class
param1は大文字と小文字を区別して、大文字と小文字を区別して、大文字、例えば最大10文字で始まります。 カテゴリは10以上では異なる必要があります。
usersettingsclassは、SQL Serverに直接プッシュされるlinq to sql generetedオブジェクトです。
これはすべて非常に簡単なサンプルです。ユーザーの入力には何でもかまいません。
デシリアライゼーションの危険性に関する苦境以外は、おそらく環境などの面でより具体的なものにする必要があります。 +1の質問です。 –
は、それがどれほど複雑で安全であるかによって異なります。 oauthを使うのはどうですか? http://oauth.net/ – melaos
多くは、デシリアライズライブラリに依存します。 – CodesInChaos