当前位置: 首页 > wzjs >正文

什么叫设计方案seo技巧分享

什么叫设计方案,seo技巧分享,全国公路建设信用网站,微网站开发费用文章目录 Java SQL 注入防御方法类型转换预编译查询(PreparedStatement)使用 ORM 框架(如 MyBatis、Hibernate)白名单限制ORDER BY 语句LIKE 语句 限制数据库权限过滤和转义特殊字符监控与日志审计使用 Web 应用防火墙&#xff08…

文章目录

    • Java SQL 注入防御方法
      • 类型转换
      • 预编译查询(PreparedStatement)
      • 使用 ORM 框架(如 MyBatis、Hibernate)
      • 白名单限制
        • ORDER BY 语句
        • LIKE 语句
      • 限制数据库权限
      • 过滤和转义特殊字符
      • 监控与日志审计
      • 使用 Web 应用防火墙(WAF)

在这里插入图片描述

Java SQL 注入防御方法

类型转换

Java 是强类型语言,因此直接的数值型 SQL 注入较少,但仍需要注意参数类型的安全性。

int id = Integer.valueOf(req.getParameter("id"));

这样可以确保 id 变量是整数,避免输入 1 OR 1=1 之类的 SQL 语句攻击。

预编译查询(PreparedStatement)

预编译(Parameterized Queries)是防止 SQL 注入的最佳实践,能够确保用户输入的数据不会被解析为 SQL 代码。

public User getUserById(String id) throws SQLException {Connection connection = JDBCTOOLS.getConnection(); // 获取数据库连接String sql = "SELECT id, username FROM user WHERE id = ?";PreparedStatement preparedStatement = connection.prepareStatement(sql);preparedStatement.setString(1, id);ResultSet resultSet = preparedStatement.executeQuery();if (resultSet.next()) {return new User(resultSet.getInt("id"), resultSet.getString("username"));}return null;
}

使用 ORM 框架(如 MyBatis、Hibernate)

ORM 框架能够自动处理 SQL 预编译,减少 SQL 注入的风险。

@Mapper
public interface CategoryMapper {@Select("SELECT * FROM category_ WHERE name = #{name}")Category getByName(String name);
}

白名单限制

某些情况下,用户输入可能用于 ORDER BYINLIKE 等 SQL 语句,预编译无法有效防止注入。这时可使用白名单校验。

ORDER BY 语句
private String checkSort(String sortBy) {List<String> columns = Arrays.asList("id", "username", "email");return columns.contains(sortBy) ? sortBy : "id";
}

这里通过 checkSort 方法,限定 ORDER BY 只能使用 白名单中的字段(id、username、email),如果 sortBy 不是合法字段,则默认按 id 排序。

String sql = "SELECT * FROM users ORDER BY " + checkSort(sortColumn);
LIKE 语句
String sql = "SELECT * FROM users WHERE username LIKE CONCAT('%', ?, '%')";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, userInput);

这里使用了 预编译(PreparedStatement),将 userInput 作为参数传递,而不是直接拼接到 SQL 语句中。

限制数据库权限

数据库用户权限应遵循最小权限原则,避免 root 账户执行 SQL 语句。

CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'XXXX';

1、CREATE USER:在 MySQL 数据库中创建一个新用户。
2、‘app_user’@‘localhost’:用户名是 app_user。
3、@‘localhost’ 指定该用户只能从本机(localhost)连接到数据库,不能从其他 IP 访问。
4、IDENTIFIED BY ‘XXXX’:设置该用户的密码为 ‘XXXX’。

GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'app_user'@'localhost';

1、GRANT:授予数据库权限。
2、SELECT, INSERT, UPDATE:允许 app_user 在数据库 mydb 中执行 查询(SELECT)、插入(INSERT)、更新(UPDATE) 操作。
3、ON mydb.*:作用范围是 mydb 数据库中的所有表(* 代表所有表)。
4、TO ‘app_user’@‘localhost’:只将这些权限授予 本机的 app_user。

过滤和转义特殊字符

可以对用户输入进行严格的字符过滤,但不建议完全依赖此方法。

public static String sanitize(String input) {return input.replaceAll("[';--]", "");
}

replaceAll() 会将单引号 (')、分号 (;)、双减号 (–)替换为空字符串 “”,即删除这些字符。

监控与日志审计

记录 SQL 查询日志,并监控异常 SQL 访问。

LOGGER.warn("SQL Query Attempt: " + sqlQuery);

使用 Web 应用防火墙(WAF)

部署 WAF(如 ModSecurity)可以检测和阻止 SQL 注入攻击。


文章转载自:

http://I3Tr1SQv.wftrs.cn
http://sqc4yXGY.wftrs.cn
http://duXHoYfn.wftrs.cn
http://FSN9fRYu.wftrs.cn
http://A3VlWGvT.wftrs.cn
http://U29SaL5M.wftrs.cn
http://SOG7x6l8.wftrs.cn
http://W9mjL0Iy.wftrs.cn
http://nlDV2kdY.wftrs.cn
http://cgXI4lWb.wftrs.cn
http://sKDg8y5w.wftrs.cn
http://E6SPnCsC.wftrs.cn
http://zOxLLiUn.wftrs.cn
http://zPkti62p.wftrs.cn
http://g1V0yQhf.wftrs.cn
http://QvvVN822.wftrs.cn
http://Z7Jc0fpj.wftrs.cn
http://SPFxjzci.wftrs.cn
http://lWnc3PLv.wftrs.cn
http://2U1A2Prk.wftrs.cn
http://0cS6MxfD.wftrs.cn
http://37xLfNwV.wftrs.cn
http://ISRYpmTE.wftrs.cn
http://2ceDM1ym.wftrs.cn
http://jlP3CTVR.wftrs.cn
http://owaTTq3R.wftrs.cn
http://ho86EeIi.wftrs.cn
http://J8eEw682.wftrs.cn
http://evJnQ0QJ.wftrs.cn
http://TPiVpJzl.wftrs.cn
http://www.dtcms.com/wzjs/779315.html

相关文章:

  • 国外用python做的网站佛山乐居装饰公司
  • 建设个网站需要多少钱无为做网站
  • 好的外贸网站建设重庆御临建筑公司官网
  • 大连制作网站企业网站被百度k掉怎么办
  • 建站免费加盟广西人社app登录不了
  • 企业网站推广注意事项专业团队图片高清
  • 做网站域名还重要吗wordpress导航读取
  • 江西城乡住房建设网站舟山网站建设流程
  • 上海的招聘网站有哪些wordpress星评分
  • 海南省建设厅网站荥阳市城乡规划和建设局网站
  • 郑州网站搭建网页设计培训好学吗
  • 政务信息化建设网站初号一号二号三号字体wordpress
  • 东莞微网站临桂县住房和城乡建设局网站
  • 有什么网站建设类岗位怎么做下载类网站
  • 如何用网站设计制作容桂网站制作信息
  • 专业网站定制价格浅谈sns网站与流行sns网站对比
  • 重庆智能网站建设多少钱福田所有车型
  • 济南网站建设推荐q479185700强涵南京做网站费用
  • 国内可以做网页的网站宣传网站设计
  • 建设行政主管部门官方网站怎么制作游戏地图
  • wordpress怎么搬站公司网站建设入什么费用
  • 企业网站建设专业的网站上做百度广告赚钱么
  • 网站优化排名的公司有哪些深圳网络推广服务是什么
  • 10个免费的黑科技网站怎么注册自己的小程序
  • 赤峰公司网站建设云主机是不是可以搭建无数个网站
  • 企业网站建设合作合同建设小企业网站步骤
  • 邢台做网站优化哪儿好wordpress统计条
  • 成都网站建设收费seo教程培训班
  • 猪八戒网站是做啥的郑州网站制作-中国互联
  • 嘉兴做网站优化公司视频网站信息资源建设