0

SQLインジェクションに対して脆弱なログインを作成しました。これは素晴らしいことです。ただし、ログイン時にDROPTABLEを使用する人は避けたいと思います。たとえば、入力にdropやtableなどの単語が含まれているかどうかをどうにかして確認できますか?

ありがとう。

4

2 に答える 2

0

SQLインジェクションの問題を解決するシンプルなPDOデータベースライブラリを使用することをお勧めします。

コードを読んでください。それほど長くはありません(〜3kb)。プリペアドステートメントを使用してデータベースクエリを操作する方法を説明します。その後、移行、クエリビルダー、ORM実装などの機能を備えた実際のデータベースライブラリに移動できます。

$pdo = new PDO(...)

$name = $_POST['name'];
// @todo make sure it's a good name

$statement = $pdo->prepare('INSERT INTO `user` (`name`) VALUES (?)');
$statement->execute(array($name));

$user_id = $pdo->lastInsertId();

アップデート

さて、質問を読み直しましたが、実際にはSQLインジェクションのデモシステムが必要です。特定の種類のSQLインジェクションの影響を受けたくないだけですか。これは、問題を起こす価値のない悪い考えのように聞こえます。各ページリクエストを破棄して再作成できるSQLiteデータベースをセットアップすれば、心配する必要はありません。

于 2012-10-25T19:17:31.757 に答える
0

if (false !== stripos($_POST['username'], 'DROP'))投稿された「ユーザー名」フィールドに「DROP」という単語が記載されているかどうかを知りたい場合に機能します。

于 2012-10-25T19:43:00.367 に答える