我正在创建一个必须将一些CSS属性保存到MySQL数据库中的页面,但是我发现如果有人编辑CSS(例如通过chrome dev工具),他们可能会插入“坏”值进入数据库,例如:
background-color: EXPL0IT;
然而,当通过开发工具尝试这样的东西时,它从不将这个坏文本输入到数据库中,并且只使用“正确”值 - 即使是背景颜色。
所以我的问题是,是否有人可以通过这种方式利用开发人员工具(在任何浏览器上)将错误的CSS值插入数据库?
编辑:
插入背景值的示例代码:
if ($update = $db->prepare("UPDATE user_pages SET `background-color` = :color, `background-size` = :size, `background-position` = :position, `background-repeat` = :repeat, `background-attachment` = :attachment, `background-image` = :image WHERE hash = :hash AND user_id = :id LIMIT 1"))
{
$update->bindValue(":color", $data[0], PDO::PARAM_STR);
$update->bindValue(":size", $data[1], PDO::PARAM_STR);
$update->bindValue(":position", $data[2], PDO::PARAM_STR);
$update->bindValue(":repeat", $data[3], PDO::PARAM_STR);
$update->bindValue(":attachment", $data[4], PDO::PARAM_STR);
$update->bindValue(":image", $data[5], PDO::PARAM_STR);
$update->bindValue(":hash", $hash, PDO::PARAM_STR);
$update->bindValue(":id", $cUser->getId(), PDO::PARAM_INT);
我目前正在使用jQuery和AJAX来完成这个PDO MySQLi语句。