SQLアンチインジェクション

  • 作成者:ayuan0625
  • 編集回数:16次
  • 最終更新:ayuan0625 于 2021-09-22
  • 一.概要

    1. SQLインジェクションとは、不正な方法でSQL文を実行させることで、データベースに保存されている情報を取得したりそれを破壊したりする攻撃です。

    2. SQLアンチインジェクションは、以下の方法でSQLインジェクションを防ぐ機能です。

    • 特殊なキーワードを禁止してSQLインジェクションを防ぐ。

    • 入力文字列をエスケープして、SQLインジェクションを防ぐ。

    注:この機能の対象は、FineReportテンプレートのみです。

    二.操作手順

    1.ページ紹介

    [システム]-[セキュリティ管理]-[SQLアンチインジェクション]から、SQLアンチインジェクションのページに入ります。下の画像の通りです。

    2.禁止キーワードの設定

    禁止キーワードは既定で有効にされています。下の画像の通りです。

    注:SQL文に禁止キーワードが含まれている場合、ログファイルにエラーメッセージが出力されます。

    2.禁止キーワードの追加

     1.[禁止キーワード]の右下にある[編集]ボタンを押して、自由に禁止キーワードを追加したり、追加されたキーワードを削除したりできます。[選択済みのキーワード]の列にあるキーワードをクリックすると、キーワードが未選択に移されます。[未選択のキーワード]をクリックすると、選択済みリストに移されます。

    2.[キーワード追加]をクリックすると、自由にキーワードを追加できます。下の画像の通りです。

    注:追加されたキーワードを削除できます。

    3.右側の検索バーからキーワードを探すことができ、選択済み、未選択のキーワード共に検索できます。下の画像の通りです。

     4.[禁止キーワード]の効果の確認

    ここでは、[条件検索]-[パラメータ連動と自動検索]を例にします。[カテゴリ]の欄にselect(selectはすでに禁止キーワードとして設定されています)を入力して[絞り込み]をクリックします。すると、エラーメッセージが表示されます:無効な文字列が使われました。SQLインジェクションを用いた攻撃をされた可能性があります。管理ユーザに連絡してください。下の画像の通りです。

    3.文字 

    3.1.エスケープ文字を有効にします。

    管理者として管理ポータルにログインします。[システム]-[セキュリティ管理]-[SQLアンチインジェクション]に入ります。[エスケープ文字]を有効にすると、SQL文字にエスケープ文字が含まれている場合、その文字が自動で転換されます。下の画像の通りです。

     

    3.2.文字の追加

    文字を追加する操作は、前節で紹介した[禁止キーワード]の追加と同じです。詳しくは二.2.禁止キーワードを確認してください。

    4.注意事項

    1.問題点:括弧()をエスケープ文字に追加すると、ポータルにログインすることが出来なくなります。

    2.解決方法:正規表現式では、括弧()が特殊な作用をはたしているので、コンマ句点括弧をエスケープ文字に設定しないでください。どうしても括弧をエスケープ文字に設定しなければならない時、\(\)で表記してください。下の画像の通りです。




    Attachment List


    Theme: FineReport 管理ポータル
    既に最初
    既に最後
    • Helpful
    • Not helpful
    • Only read