duandu6497 2010-09-19 16:22
浏览 42
已采纳

准备好的语句是否完全保护我的网站免受MySQL注入?

I'm using prepared statements and MySQLi with my queries to protect against injection attacks. Would prepared statements remove the need for mysql_real_escape_string entirely? Is there anything else I should consider when securing my site?

  • 写回答

2条回答 默认 最新

  • douli0531 2010-09-19 16:41
    关注

    As long as you're using the prepared statements correctly they will. You have to make sure you're binding all the external variables and not putting them directly in the query.

    For example

    $stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=" . $name);
    

    This statement is being prepared, but it doesn't use one of the bind methods so it does no good. It is still vulnerable to SQL injection.

    To fix that make sure to bind everything...

    $stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
    $stmt->bind_param("s", $city);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥15 对于这个问题的算法代码
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题