>  Q&A  >  본문

java - 如何防止sql注入

PHP中文网PHP中文网2764일 전1286

모든 응답(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)."'";
    select * from members where 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
  • 취소회신하다