私が数日間取り組んできた新しいAPIの展開に関する私の主な関心事は、セキュリティです。
私はPDOの使用法の初心者ですが、主な構造を知っています。しかし、SQLInjectionからクエリを保護する方法がわかりません。
私のコードは以下のとおりです。
<?php
$Start = new Db();
class Db
{
private $dbh = null;
public function __construct()
{
$this->dbh = new PDO('mysql:host=localhost;dbname=pdo', 'root', 'xxxxx');
}
public function PDOFetch($Var)
{
$sth = $this->dbh->prepare("$Var");
$sth->execute();
$result = $sth->fetchAll();
return $result;
}
public function PDONumb ($Var)
{
$sth = $this->dbh->prepare("$Var");
$sth->execute();
$count = $sth->rowCount();
return $count;
}
public function PDODel ($Var)
{
$Delete = $this->dbh->exec("$Var");
return $Delete;
}
public function PDOQuery ($Var)
{
$Query = $this->dbh->query("$Var");
return $Query;
}
}
?>
SQLインジェクションやその他の脆弱性から保護するにはどうすればよいですか?
編集:
APIに渡されるクエリは、たとえば「index.php」ページから実行されます。
行は次のようになります。
$Num = $Start->PDONumb("SELECT * FROM news");
しかし後で、私がこれで私のトラックをカバーしたとき。これを使用してさらに高度に進みたいので、ユーザーが定義する変数を渡します(したがって、SQLインジェクションの質問)
ただし、現時点では、渡されるクエリは管理者によって定義されています。