私は大学の財政援助事務所の学校プロジェクトに取り組んでいます。プロジェクトは生産中であり、そのほとんどはこことそこで少し微調整から離れて行われます。冬休み(現在)に対する私の主な関心事は、セキュリティであり、あらゆる違反を私の能力の最大限に守ることです。人々はPrepared Statementsに手を差し伸べるように私に言いました。私はデータを挿入することを除いて、それらをよく理解しています。準備文の理解 - PHP
私には2つのフォームがあります:ログインフォームと学生ログインフォームです。学生ログインフォームには、なぜ学生がオフィスに来るのかが記入されています。そのフォームが提出され、そのデータは後でカウンセラーに見られるテーブルによって検索され、生徒は何が見られるのを待っています。財政援助のオフィスに歩く各学生が今私を混乱させる何(ほとんどの時間を)彼または彼女自身のユニークな問題を抱えているのに私の問題がある
は次のとおりです。私は
先に考える必要があると事前くださいインサートクエリを作成するか、そこに学生のコメントボックスがあるので「ダイナミック」クエリが存在するための方法があります。それは完全にユニークなので、どのようにクエリを作成することができますか?
<?php
define('DB_Name', 'dbtest');
define('DB_User', 'root');
define('DB_Password', 'testdbpass');
define('DB_Host', 'localhost');
$link = mysql_connect(DB_Host, DB_User, DB_Password);
if (!$link) {
die ('Could Not Connect: ' . mysql_error());
}
$db_selected = mysql_select_db(DB_Name, $link);
if (!db_selected) {
die('Can Not Use ' . DB_name . ': ' . mysql_error());
}
$value1 = $_POST ['anum'];
$value2 = $_POST ['first'];
$value3 = $_POST ['last'];
$value4 = $_POST ['why'];
$value5 = $_POST ['comments'];
$sql = "INSERT INTO `dbfinaid` (anum, first, last, why, comments) VALUES ('$value1', '$value2', '$value3', '$value4', '$value5')";
if (!mysql_query($sql)) {
die('Error : ' . mysql_error());
}
mysql_close();
このようにして、私はSQLインジェクションになりやすいと言われています。
ご協力いただければ幸いです。ありがとうございました。
明らかに準備されたステートメントは、動的である可能性があります。あなたはちょうどこれを読む:http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers それはそれです – gd1
ペーストビンはロードされていないようです。あなたはあなたの質問に適切なコードを置くことができますか? –
@MikeBrant:私のために読み込みます。しかし、それは古典的なmysql_query()アプローチでSQLインジェクションを起こしやすくなります:) – gd1