首页  >  问答  >  正文

java - 如何防止sql注入

PHP中文网PHP中文网2764 天前1287

全部回复(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 *从成员中,其中 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
  • 取消回复