2016-11-30 9 views
0

私はStringあるLongsectionある二つのパラメータ studentIdを受け入れる方法deleteStudentを持つRESTコントローラを、持っています。上記のコードcheckmarxについてCheckMarx XSRF攻撃の問題

@RequestMapping(value="/rest/deleteStudent/studentId/{studentId}/section/{section}", method = RequestMethod.DELETE) 
public Student deleteStudent(@PathVariable Long studentId, @PathVariable String section){ 
    return studentService.deleteStudent(studentId ,section); 
} 

このパラメータの値はコードを通って流れ、最終的に、データベースの内容を変更するために使用されるを訴えています。 アプリケーションでは、要求に対する更新されたユーザー認証は必要ありません。これにより、クロスサイトリクエスト偽造(XSRF)が可能になる場合があります。

私は、幸運のセクションでHtmlutils.htmlescape(春のWebユーティリティから)を試しました。

このチェックマックスの問題を取り除くにはどうすればよいですか?

フィールドがロングタイプの場合、もう1つXSRFとSQLインジェクション攻撃が可能ですか?

答えて

0

sectionパラメータではなく、studentIdパラメータについては確信していますか?

もし本当なら、私はそれが偽陽性だと言いたいと思います。

sectionパラメータについては、SQLリクエストがセキュリティ保護されている場合は心配ありません(ORMやプリペアドステートメントなどを使用する場合)。

全体的に言えば、SQLインジェクションのすべてのケースで偽陽性だと思います。

つまり、CSRF attacksの場合、実際には脆弱な可能性があります。

ハッカーが管理者にページをロードさせると、CSRF保護を実装していない場合でも、アクセスしなくてもユーザーアカウントを削除できます。

+0

固有のcsrfトークンを追加するフィルタを実装しましたが、それでもcsrf攻撃について不平を言います – sar

+0

CSRF保護が適切に機能していることが確かな場合は、偽陽性の可能性があります。あなたが使用しているツールはわかりませんが、保護があることを検出できない場合があります。特に、コードを分析して機能的にテストしていない場合は... – AntoineB

+0

@saurabhどのようなフィルタですか?コードスニペットにアンチcsrfトークンが含まれていません... – yaloner