资讯专栏INFORMATION COLUMN

使用PHP的PDO_Mysql扩展有效避免sql注入

JasonZhang / 2368人阅读

摘要:非常重要的就是字符集的设定一定要正确,否则还是有一些特殊字符能被构造用于注入。执行语句之前恩,貌似就是这么简单,我们就告别了注入,感觉有点虚幻。

首先,什么是sql注入?
用大白话说就是:当一个人在访问你的应用时,需要输入,他的输入是一些特殊的字符,你没有对输入进行过滤处理导致他的输入改变了你的sql语句的功能,实现他自己的目的,通过这种方式他可能能拿到很多权限,从而实施自己的攻击
以上的描述是很不严谨的,如果想深入了解sql注入,访问下面的链接:

http://www.php.net/manual/zh/security.database.sql-injection.php

本文的目的其实不是让大家知道什么是sql注入,而是希望大家从此可以忘掉sql注入。
在实践中,肯定有很多经验被总结出来,避免sql注入,在以前的mysql和mysqli扩展中,我们都需要手动去处理用户输入数据,来避免sql注入,这个时候你必须要非常了解sql注入,只有了解,才能针对具体的注入方式采取有效措施

PDO_Mysql的出现,可以让你从sql注入的斗争中抽身而去,你只需要记住,创建一个pdo_mysql链接实例的时候,设置合适的charset,就再也不必为sql注入揪心了。非常重要的就是字符集的设定一定要正确,否则还是有一些特殊字符能被构造用于sql注入

mysql:host=localhost;dbname=testdb;charset=utf8

执行sql语句之前prepare

恩,貌似就是这么简单,我们就告别了sql注入,感觉有点虚幻。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20633.html

相关文章

  • PHP新手最佳实践

    不要使用mysql_*系列函数,查询时尽量对sql语句进行预处理 PHP官方目前已经将此系列函数标记为弃用状态,添加PHP对mysql的支持,编译时使用下面的参数 --enable-mysqlnd --with-pdo-mysql --with-mysqli --with-mysql=mysqlnd mysql_*系列函数不支持 预处理语句,事务,存储过程,异步查询,多条...

    willin 评论0 收藏0
  • php操作mysql防止sql注入(合集)

    摘要:参考中如何防止注入参数化查询为什么能够防止注入上面提供的资料比较多,下面根据自己的理解整理出来。使用的预处理参数化查询可以有效防止注入。我们在上面预处理参数化查询是在中进行防注入操作的,其实也内置了一个预处理的模拟器,叫做。 由于segmentfault在处理特殊字符时也并非完美,所以下面文章中有些符号被转换了,请到本人博客下载原文txt http://www.yunxi365.cn/...

    kviccn 评论0 收藏0
  • 注入攻击-SQL注入和代码注入

    摘要:注入攻击将注入攻击和跨站脚本攻击列入网络应用程序十大常见安全风险。这种类别的攻击包括跨站脚本攻击注入攻击头部注入攻击日志注入攻击和全路径暴露。注入攻击目前最常见的注入攻击形式是臭名昭著的注入攻击。 注入攻击 OWASP将注入攻击和跨站脚本攻击(XSS)列入网络应用程序十大常见安全风险。实际上,它们会一起出现,因为 XSS 攻击依赖于注入攻击的成功。虽然这是最明显的组合关系,但是注入攻击...

    lwx12525 评论0 收藏0
  • PHP代码安全策略

    摘要:文件系统安全如果具有权限,且在脚本中允许用户删除文件,那么用户提交数据,不进行过滤,就非常有可能删除系统文件从用户目录中删除指定的文件上面的代码,假设用户提交的值是,那么目录就会被删除防范文件系统攻击,策略如下只给有限的权限用户提交上来的变 文件系统安全 php如果具有root权限,且在脚本中允许用户删除文件,那么用户提交数据,不进行过滤,就非常有可能删除系统文件 上面的代码...

    GT 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<