そのため、SQL インジェクションを許可するための許容可能な方法があるかどうかを知りたいと思いました。
例:
テーブル/データベースに対する権限を制限する
なぜ聞くの?
私の雇用主は、応募者のスキルをテストする方法を考案したいと考えていました。1 つの提案は、SQL インジェクションによる履歴書の提出を許可することでした。
何かご意見は?提案?
そのため、SQL インジェクションを許可するための許容可能な方法があるかどうかを知りたいと思いました。
例:
テーブル/データベースに対する権限を制限する
なぜ聞くの?
私の雇用主は、応募者のスキルをテストする方法を考案したいと考えていました。1 つの提案は、SQL インジェクションによる履歴書の提出を許可することでした。
何かご意見は?提案?
ロールを使用できます。データベースへの接続に使用される Web アプリケーション (または何でも) のロールを作成します。この役割をINSERT
、申請に必要なテーブルへのアクセスと許可のみに制限します。アプリケーションを介してデータベースにアクセスできる応募者は、SQL インジェクションを使用して履歴書を追加することしかできませんでした。
SQL の才能のある人が、ロールの権限を増やす方法でインジェクションを使用する可能性があります。CREATE
しかし、ロールが特定のテーブルのみへのアクセスを制限し、GRANT
特権を持っていない場合、ユーザーは新しいロールを作成できないと思います。
開始するためのロールに関する情報を次に示します。
MySQL Workbench を使用して MySQL にロールを追加する
GRANT
コマンド- テーブル、データベースなどでユーザーに権限を追加するために使用されます。このページは PostgreSQL 用ですが、MySQL は非常に似ています (この SO 回答を参照)
この背後にある理由が人々の能力をテストすることであることを考えると、失われてもよいデータでデータベースを作成してください。coldfusion、php、java、.net、またはそのデータベースに接続するその他の種類のページに投稿するフォームを設定します。
フォームにテキストエリアと送信ボタンを配置します。フォーム ターゲット ページで、テキストエリアに入力した内容をログに記録します。ログをデータベースと比較して、結果がどうなったかを確認します。
次に、心ゆくまでテストしてください。