当前位置:w88优德官网网文章中心网站运营网站安全 → PHP代码网站防范SQL注入漏洞攻击的建议

PHP代码网站防范SQL注入漏洞攻击的建议

减小字体 增大字体 作者:admin  来源:本站整理  发布时间:2017-4-24 8:13:15
所有的网站管理员都会关心网站的安全问题。说到安全就不得不说到SQL注入攻击(SQL Injection)。黑客通过SQL注入攻击可以拿到网站数据库的访问权限,之后他们就可以拿到网站数据库中所有的数据,恶意的黑客可以通过SQL注入功能篡改数据库中的数据甚至会把数据库中的数据毁坏掉。做为网络开发者的你对这种黑客行为恨之入骨,当然也有必要了解一下SQL注入这种功能方式的原理并学会如何通过代码来保护自己的网站数据库。今天就通过PHP和MySQL数据库为例,分享一下我所了解的SQL注入攻击和一些简单的防范措施和一些如何避免SQL注入攻击的建议。什么是SQL注入(SQL Injection)?简单来说,SQL注入是使用代码漏洞来获取网站或应用程序后台的SQL数据库中的数据,进而可以取得数据库的访问权限。比如,黑客可以利用网站代码的漏洞,使用SQL注入的方式取得一个公司网站后台数据库里所有的数据信息。拿到数据库管理员登录用户名和密码后黑客可以自由修改数据库中的内容甚至删除该数据库。SQL注入也可以用来检验一个网站或应用的安全性。SQL注入的方式有很多种,但本文将只讨论最基本的原理,我们将以PHP和MySQL为例。本文的例子很简单,如果你使用其它语言理解起来也不会有难度,重点关注SQL命令即可。一个简单的SQL注入攻击案例假如我们有一个公司网站,在网站的后台数据库中保存了所有的客户数据等重要信息。假如网站登录页面的代码中有这样一条命令来读取用户信息。
<?$q = "SELECT `id` FROM `users` WHERE `username`= ' " .$_GET['username']. " ' AND `password`= ' " .$_GET['password']. " ' ";?>
现在有一个黑客想攻击你的数据库,他会尝试在此登录页面的用户名的输入框中输入以下代码:
' ; SHOW TABLES;
点击登陆键,这个页面就会显示出数据库中的所有表。如果他现在使用下面这行命令:
'; DROP TABLE [table name];
这样他就把一张表删除了!当然,这只是一个很简单的例子,实际的SQL注入方法比这个要复杂得多,黑客也愿意花大量的时间来不断尝试来攻击你的代码。有一些程序软件也可以自动地来不断尝试SQL注入攻击。了解了SQL注入的攻击原理后,我们来看一下如何防范SQL注入攻击。防范SQL注入 - 使用mysql_real_escape_string()函数在数据库操作的代码中用这个函数mysql_real_escape_string()可以将代码中特殊字符过滤掉,如引号等。如下例:
<?$q = "SELECT `id` FROM `users` WHERE `username`= ' " .mysql_real_escape_string( $_GET['username'] ). " ' AND `password`= ' " .mysql_real_escape_string( $_GET['password'] ). " ' "; ?>
防范SQL注入 - 使用mysql_query()函数mysql_query()的特别是它将只执行SQL代码的第一条,而后面的并不会执行。回想在最前面的例子中,黑客通过代码来例后台执行了多条SQL命令,显示出了所有表的名称。所以mysql_query()函数可以取到进一步保护的作用。我们进一步演化刚才的代码就得到了下面的代码:
<?//connection$database = mysql_connect("localhost", "username","password");//db selectionmysql_select_db("database", $database);$q = mysql_query("SELECT `id` FROM `users` WHERE `username`= ' " .mysql_real_escape_string( $_GET['username'] ). " ' AND `password`= ' " .mysql_real_escape_string( $_GET['password'] ). " ' ", $database);  ?>
除此之外,我们还可以在PHP代码中判断输入值的长度,或者专门用一个函数来检查输入的值。所以在接受用户输入值的地方一定要做好输入内容的过滤和检查。当然学习和了解最新的SQL注入方式也非常重要,这样才能做到有目的的防范。如果使用的是平台式的网站系统如Wordpress,要注意及时打上官方的补丁或升级到新的版本。如果有讲得不对的地方或不理解的请在评论区留言。文章来自广州网站建设:http://www.gscpp.net转载请保留链接! 注:相关网站建设技巧阅读请移步到建站教程频道。 收藏本文

本文引用网址:
在下列搜索引擎中搜索“PHP代码网站防范SQL注入漏洞攻击的建议”的相关信息:
谷歌搜索 百度搜索 360搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1最新90后吹箫门事件曝光 90后女...
  • 2王梦溪未经处理雅照120P完整艳...
  • 3女学生裸贷资源百度云下载 10G...
  • 4女大学生裸贷照片合集[100P/23...
  • 5兰州西固86警花原照(王梦溪rar...
  • 1织梦CMS建频道、栏目时,栏目内...
  • 2身份证号码和真实姓名 满18岁成...
  • 3织梦dedecms5.7文章不能上传附...
  • 4帝国模板列表页和内容页的伪静...
  • 5对于搜索引擎营销的一些看法
  • 1兰州警花王梦溪裸照全集视频 王...
  • 2杨晴雨裸条图片 女学生裸贷照片...
  • 3合肥艳照门事件 合肥艳照门全套...
  • 4兰州警花王梦溪裸照 兰州86警花...
  • 5裸贷门何香沄 裸条借贷12g迅雷...
  • 1如何在Linux下使用逻辑卷管理程...
  • 2如何做服务器安全维护?有哪些...
  • 3提高IIS网站服务器的效率的八种...
  • 4详述Windows 2000系统日志及其...
  • 5VSFTPD服务器安装配置
  • 赞助商广告

    图片文章导读