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

免费网站建设 优帮云色盲测试图

免费网站建设 优帮云,色盲测试图,wordpress文章列表不同样式,wordpress果酱二维码开发: SQL 注入是一种数据库攻击手段。攻击者通过向应用程序提交恶意代码来改变原 SQL 语句的含义, 进而执行任意 SQL 命令,达到入侵数据库乃至操作系统的目的。 例如:下面代码片段中,动态构造并执行了一个 SQ…
开发:
SQL 注入是一种数据库攻击手段。攻击者通过向应用程序提交恶意代码来改变原 SQL 语句的含义,
进而执行任意 SQL 命令,达到入侵数据库乃至操作系统的目的。
例如:下面代码片段中,动态构造并执行了一个 SQL 查询来认证用户。
public void doPrivilegedAction( String username, char[] password) throws SQLException {
Connection connection = getConnection();
if (connection == null) {
// handle error
}
try {
String pwd = hashPassword(password);
String sqlString = "SELECT * FROM db_user WHERE username = '" + username + "' AND password
= '" + pwd + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sqlString);
if (!rs.next()) {
throw new SecurityException( "User name or password incorrect");
}
// Authenticated; proceed
} finally {
try {
connection.close();
} catch (SQLException x) {
// forward to handler
}
}
}
如果攻击者能够替代 username password 中的任意字符串,它们可以使用下面的关于 username 的字
符串进行 SQL 注入。
validuser' OR '1'='1
当其注入到命令时,命令就会变成:
SELECT * FROM db_user WHERE username=’validuser' OR '1'='1' AND password=’’
同样,攻击者可以为 password 提供如下字符串。
' OR '1'='1
当其注入到命令时,命令就会变成:
SELECT * FROM db_user WHERE username='' AND password='' OR '1'='1‘
修复建议及参考:
造成 SQL 注入攻击的根本原因在于攻击者可以改变 SQL 查询的上下文,使程序员原本要作为数据
解析的数值,被篡改为命令了。防止 SQL 注入的方法如下:
1 )正确使用参数化 API 进行 SQL 查询。
2 )如果构造 SQL 指令时需要动态加入约束条件,可以通过创建一份合法字符串列表,使其对应于可
能要加入到 SQL 指令中的不同元素,来避免 SQL 注入攻击。
例 如 : 以 下 代 码 片 段 使 用
java.sql.PreparedStatement
代 替 java.sql.Statement , 在
java.sql.PreparedStatement 类中可以对输入字符串进行转义,如果使用正确的话,可以防止 SQL 注入。
public void doPrivilegedAction(String username, char[] password) throws SQLException {
Connection connection = getConnection();
if (connection == null) {
// Handle error
}
try {
String pwd = hashPassword(password);
// Ensure that the length of user name is legitimate
if ((username.length() > 8) {
// Handle error
}
String sqlString = "select * from db_user where username=? and password=?";
PreparedStatement stmt = connection.prepareStatement(sqlString);
stmt.setString(1, username);
stmt.setString(2, pwd);
ResultSet rs = stmt.executeQuery();
if (!rs.next()) {
throw new SecurityException("User name or password incorrect");
}
// Authenticated, proceed
} finally {
try {
connection.close();
} catch (SQLException x) {
// forward to handler
}
}
}
http://www.dtcms.com/wzjs/387189.html

相关文章:

  • 宝盈集团直营网站怎么做建网站免费
  • 厦门商城网站建设南宁正规的seo费用
  • 哈尔滨做网站优化编程培训机构
  • 网站开发全程设计近10天的时政新闻
  • 企业网站做app百度搜索入口网址
  • 做厂房的网站建网站找谁
  • 如何做ppt的模板下载网站外贸网站大全
  • 在美国建设网站快速seo整站优化排行
  • 日本软银是干什么的长沙seo排名外包
  • wordpress禁用插件重庆百度快速优化
  • 在线免费看1921完整版知乎seo排名的搜软件
  • seo体系网站的建设及优化关键词快速上首页排名
  • 网站建设技术公司排名旺道seo网站优化大师
  • 做几何图形和网站财经新闻最新消息
  • 广州java网站建设武汉网络关键词排名
  • 萧山网站优化舆情危机公关公司
  • 哪个网站是做包装材料珍珠棉包管今日头条官方正版
  • 河南有名的做网站公司有哪些企业关键词优化推荐
  • 有趣的网站小游戏网址全球最牛的搜索引擎
  • 沁水网站建设seo软件视频教程
  • 如何做flash游戏下载网站深圳百度推广竞价托管
  • 可以以个人名义做网站么灰色词排名代做
  • 长春做网站优化seo怎么刷关键词排名
  • 做网站官网需多少钱每日新闻
  • 河南商务学校网站建设头条权重查询
  • 课程网站建设简介百度人工电话多少号
  • 做国际贸易需要网站吗网络营销的营销理念
  • 大型b2b网站开发爱站工具包的主要功能
  • 南宁模板建站多少钱淘宝关键词排名
  • 珠海网站优化谷歌google官网入口