1

重複の可能性:
PDOプリペアドステートメントの安全性

そのため、PHPのすべてのmysqlクエリを置き換えるためにPDOを調べていました。私がこれを行っている主な理由は、セキュリティとコーディングのしやすさのためです。セキュリティに関しては、私はただ疑問に思っていました。mysqlクエリ呼び出しとユーザーからキャプチャしているデータをPDOで置き換え終わったら、クエリの準備と実行の間に何を入れることを検討する必要がありますか?またはそれはセキュリティの世話をしますか。PDOのセキュリティがどこにあるのか理解できないと思います。これは、ユーザー入力を取得してデータベースに配置するためのコードの例です。これに関する問題はありますか?または私ができる改善?

<?php
session_start();
include("dbgear.php");

$var1 = $_POST['stuff1'];
$var2 = $_POST['stuff2'];
$var3 = $_POST['stuff3'];
$var4 = $_POST['stuff4'];
$var5 = $_SESSION['stuff5'];
$vardate = date("M d, Y h:i A");


$info = "INSERT INTO comments SET     name=:user,class=:class,comment=:commentarea,date=:date,detector=:detector";


$send = $connect->prepare($info);
$send->execute(array(':user'=>$var1,':class'=>$var2,':commentarea'=>$var3,':date'=>$var4,':detector'=>$var5));

?>
4

1 に答える 1

2

データベースに何を入れるかについて心配する必要はありません。すべて(セキュリティに関して)はPDOによって処理されます。

ただし、後でWebサイトでデータを使用する場合は、JavaScript(XSSインジェクション)が含まれている可能性があることに注意してください。したがって、最も安全なアプローチを実現するために、データベースに入力する前に、常にユーザーデータをフィルタリングし、整数をintにキャストし、ユーザーがアップロードするhtmlをフィルタリングします。

于 2012-11-12T23:32:36.330 に答える