より詳細に問題をレポートするための API 構成¶
このセクションでは、SQL インジェクションの可能性など、デフォルトのアプリケーション設定では発見できない場合がある問題を見つけるのに役立つよう、特定のフレームワークを構成する方法を確認します。それらの構成の変更は任意であり、運用環境では安全ではないことがほとんどです。しかし、CI/CD パイプラインの一部としてなど、安全な環境で有効化すると、Mayhem によって得られる価値を増大させることができます。
変更には、内部エラーが発生したとき、スタック トレースなどの追加情報をレスポンスに含めて返すなどの API 構成の調整が含まれます。
このような変更によって、バグがあるエンドポイントの根本原因により早く到達し、ファザーがエラーベースの SQL インジェクション攻撃などのセキュリティ脅威をより正確に識別できるようになります。
- Spring Boot (Java)
- Flask (Python)
フィードバック
上記の中にご利用の API フレームワークがない場合、お知らせください。 support@forallsecure.com
Spring Boot (Java)¶
application.properties
ファイル内、application.yml
ファイル内、またはコマンド ライン スイッチとして、さまざまなプロパティを指定できます。プロパティの一覧については https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html を参照してください。
以下の構成は、application.properties
ファイルを使用する場合の例です。
Warning
設定は開発テストでは適切ですが、運用では使用するべきではありません。
サーバー エラー時にスタック トレースを含める¶
application.properties
で次の行を指定します。
server.error.include-stacktrace=always
ファザー ターゲットでエラーが発生すると、Spring Boot はレスポンスにスタック トレースを含めます。
Flask (Python)¶
Flask ベースの API を開発している場合、ビルトイン Werkzeug 開発サーバーがデバッガーを提供し、リクエスト時に未対応のエラーが発生すると、ブラウザーにインタラクティブなトレースバックが表示されます。
詳細については https://flask.palletsprojects.com/en/latest/debugging/ を参照してください。
Warning
設定は開発テストでは適切ですが、運用では使用するべきではありません。
サーバー エラー時にトレースバックを含める¶
アプリケーションを実行する前に FLASK_ENV=development
環境変数を設定します。
$ export FLASK_ENV=development
$ flask run
または、Python コードから実行する際に debug=true
フラグを含めます。
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
app.run(debug=True)
ファザー ターゲットでエラーが発生すると、Flask はレスポンスにトレースバックを含めます。