通常,我使用PDO的预处理语句,类型转换为(int)或PDO :: quote()以防止sql注入.对于此应用程序,我需要在将日期添加到查询之前使用
PHP修改日期.我是否需要采取额外措施来防止sql注入,或者我是否安全?谢谢
@H_502_6@
DateTime对象是否安全无关紧要.您应该转义要传递给查询的数据,而不是依赖于提供的库的安全性.如果更改实现,则无需关心新实现是否安全.你应该总是逃避.否则你会尝试回答 – 并记住 – 每个函数 – 对sql来说是否安全?对于HTML?对于CSV?对于http /邮件标题?因为……不要!发送查询的代码行应该对DateTime实现一无所知,是否安全
$date = new DateTime($_GET['suspect_user_provided_date']); $date->add(new DateInterval('P1D')); $sql='SELECT * FROM table WHERE date<"'.$date->format('Y-m-d').'"';