コマンドライン引数を介してユーザーからJavaプログラムを取得しString
ています。
問題は、攻撃の可能性や脆弱性を防ぐためにどのようなチェックを実行する必要があるかということです。
私はセキュリティ分野の専門家ではありませんが、私の知る限りでは
- Cでは、ユーザーが指定した行が長すぎて不適切に処理されると、バッファ オーバーフローが発生する可能性があります
- ` 文字を含むPHP行で不適切に処理すると、SQL インジェクションが発生する可能性があります
String
今のところ、正規表現を適用してチェックするための a の特定の形式については考えられません。恣意的かもしれませんが、有害に見える場合はすぐにやめたいです。文字列は、ネットワークを使用して Java サーバーに送信される場合があり、そこで SQL クエリに使用される場合があります。
if (args.length > 0) {
String arg0 = args[0];
if (!isValidString(arg0)){
System.exit(1);
}
}
public boolean isValidString (String str) {
if (str == null) return false;
//TODO: many more checks here
return true;
}
Java は C や初期の PHP よりもはるかに安全であると確信していますが、何に注意すればよいでしょうか?