サーバーでユーザーが送信したSQLコードを実行したい(教育目的)。しかし、これは非常に危険です。SQLコードを実行する場合(これを行う安全な方法がある場合)、またはユーザーコードが正規表現に一致するかどうかのみをチェックしてシンボリックな結果を表示する場合、何が改善されるかを知りたいです。
2 に答える
2
最も簡単で基本的な方法は、最初に Web ページで使用されるアカウントを制限することです。
特定のアカウントに、特定のデータベースに対してのみ特定のことを行う権限を付与します。ディスクへのすべての I/O およびその他の機能も無効にします。
ただし、いくつかの挿入、作成、削除、更新ステートメントを許可する必要があります。
さらに 3 つのオプション:
完全な Web アプリケーションを作成する
さらに、可能であれば、各ユーザーに独自のアカウントを付与します。これは、残りのすべてのスキーマからサンドボックス化されています。
次のような Web アプリケーションを作成できます。
- ユーザーアカウント(登録など)を管理します。
- ユーザーごとに個別のデータベースを作成します。
- 各ユーザーを独自のスキーマでサンドボックス化する権限を管理します。
- クエリを実行するための環境を提供します。
PHP My Admin へのアクセスを提供する
管理者パスワードなしで、生徒に PHPMyAdmin へのアクセスを許可します。各学生は、独自のユーザー名を持ち、特定の権限を持つ独自のデータベースにアクセスできます。
ユーザーを Select の使用のみに制限する
select ステートメントや join などの基本的なことを教えている場合は、Web インターフェイスで使用される特定のアカウントにその権限のみを与えることができます。
于 2013-05-21T17:55:05.647 に答える