首頁  >  問答  >  主體

java - 如何防止sql注入

PHP中文网PHP中文网2764 天前1285

全部回覆(15)我來回復

  • ringa_lee

    ringa_lee2017-04-17 16:25:38

    一般參數化或預存程序就ok

    回覆
    0
  • 黄舟

    黄舟2017-04-17 16:25:38

    可注入的sql:
    $id=$_REQUEST['id'];
    $name=$_REQUEST['name'];
    select * from Members where id=$id;
    select * from Members where id=' ".$id."'";
    select * from Members where name='".$name."'";
    不可注入:
    select * from Members where id='".intval($id)."' ";
    從成員中選擇*,其中name=".sql_escape($name);

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 16:25:38

    過濾使用者的輸入,限制類型和大小,sql語句參數化。另外也要考慮webservices的參數漏洞。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 16:25:38

    使用JavaEE的PreparedStatement介面可以很方便的防止SQL注入,各個DataBase廠商的驅動程式都實現的不錯。 Druid這個連接池也有幫你過濾SQL,防止注入。 jenkins可以配合一些插件,像是findBugs來找出有可能的SQL注入行為。

    回覆
    0
  • PHPz

    PHPz2017-04-17 16:25:38

    1/前端輸入使用jsoup過濾。 jsoup也可以自訂各類別過濾規則。
    2/使用ibatis之類的orm框架,綁定SQL執行的參數。

    回覆
    0
  • 取消回覆