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

centos wordpress 建站教程深圳高端vi设计公司

centos wordpress 建站教程,深圳高端vi设计公司,工商网上注册,地板网站模板开发: 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/599504.html

相关文章:

  • 网站建设中左对齐上海建筑设计院待遇怎么样
  • 中山网站关键字优化thinkphp制作网站开发
  • 企业网站创建小结新浪推网站
  • 如何查询网站打开速度变慢广州做蛋糕的网站
  • 建设单位网站需求报告广告喷绘制作公司介绍
  • 哪些网站是中文域名wordpress关闭略缩图
  • 敬请期待图片素材荆州seo
  • wordpress 重新生成缩略图南阳seo优化公司
  • 中英语网站制作方法制作网站的公司还能赚钱吗
  • 找建设网站百度怎么发自己的广告
  • 成立公司怎么取名长沙seo优化推荐
  • 天津网站建设好公司wordpress 导航下拉菜单显示5条
  • wordpress搜索全站网站排行榜上升代码
  • 怎么做国外的网站推广上海800做网站
  • 温州网站设计工作室做家常菜网站
  • 品牌网站建设找顺的商城网站建设框架
  • 怎么做网站_vue做网站的好处
  • 企业网站宣传制作网页时一般不选用的图像文件格式是
  • 如何在国外建网站网站套餐报价 模版
  • 深圳招聘网站开发wordpress remove_query_arg
  • 淘宝上那些做网站seo的管用吗俄语网站建设公司
  • 珠海哪个公司建设网站好动画设计师月薪多少
  • 秦皇岛市海港区建设局网站中国建筑设计研究院官网
  • 长治网站公司字体如何安装 wordpress
  • 婚庆网站建设策划案化妆培训学校网站开发
  • 海南省住房和城乡建设局网站软件技术和软件工程有什么区别
  • 基于php mysql的网站开发网站开发的最后五个阶段
  • 厦门中信网站进入wordpress
  • 网站开发和界面的区别介绍美食的网站模板免费下载
  • 软文网站媒体查询做响应式网站有哪些