Это запрос, который я готовлю.Это слишком похоже на обычный запрос mysql_query, и я не уверен, что я нахожусь за пределами безопасных границ PDO.
function opinionlist($orderby="dateposted desc",$page="0",$pagesize="10"){
$dbh = new PDO(...);
$s = $dbh->prepare("select * from fe_opinion
order by :orderby limit :page,:pagesize");
$s->bindParam(":orderby", $orderby);
$s->bindParam(":page", $page);
$s->bindParam(":pagesize, $pagesize");
$s->execute();
$opinionlist = $s->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($opinionlist);
}
- Можно ли безопасно создавать подобные запросы?
- Безопасно ли получать имя таблицы для заказа по выражению или мне ONLY можно получить значения изввод?
В настоящее время я изменил свой код на
function opinionlist($orderby="dateposted desc",$page="0",$pagesize="10"){
$orderbylist=array("dateposted desc","countcomment desc","countvote desc");
$dbh = new PDO(...);
if(!in_array($orderby, $orderbylist)){$orderby="dateposted desc";}
$s = $dbh->prepare("select * from fe_opinion order by $orderby limit :page,:pagesize");
$s->bindParam(":page", $page);
$s->bindParam(":pagesize, $pagesize");
$s->execute();
$opinionlist = $s->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($opinionlist);
}