黑客24小时接单的网站

黑客24小时接单的网站

SQL注入的基本原理和防御方法(黑客大户追款一般要多久追回)

           SQL注意,这个词相信大多数程序员并不陌生。他们可能已经修复了这种缺陷攻击。本文主要写给一些新手程序员,以防止我的程序被黑客应用,提高安全性。PHP以程序为例,停止解释

           SQL注入的原理

           要说原理,主要是从PHP的MYSQL查询语句开始。让我们来看看 普通数据库查询语句。

           $sql = “SELECT * FROM `xxxx` WHERE `id` = ‘$id’ ORDER BY id ASC”;

           这是一个普通的查询句。为了让程序通过get 或 post通过传参停止动态查询的方式,一般都会通过SQL停止查询句子中参与变量的方式;即上述句子中的变量”$id”。

           一般来说,一般来说,PHP程序员将使用它$_GET[”]、$_REQUEST[”]等方式获取url传参。这样,黑客就有机会了。

           例如,如果上述句子对应url为 index.php?id=1 ,那么程序语句的实际行为:$sql = “SELECT * FROM `xxxx` WHERE `id` = 1 ORDER BY id ASC”;(的确,这没问题)

           再举一个例子,如果这个句子对应url为index.php?id=1 and 1=1 ,然后程序语句变成 $sql = “SELECT * FROM `xxxx` WHERE `id` = 1 and 1=1 ORDER BY id ASC”;

           在这里,我们应该弄清楚黑客是如何应用的SQL注入缺陷并停止攻击?看看注入缺陷的工作原理,我们现在要做的就是把变量$id经过$_GET[”]停止过滤获得的参数字符。

           例如:我们过滤掉它”and”,”=” 这样的字符,然后程序语句就变成了$sql = “SELECT * FROM `xxxx` WHERE `id` = 1 11 ORDER BY id ASC”; 黑客不能额外添加一些SQL停止程序设计以外的动作。

           如何过滤URL传参的变量

           在PHP我们可以在程序中使用 str_replace() 函数停止字符交换字符串变量的内容。

           语法如下:str_replace(“需要交换的字段”,”交换字段”,”字符串内容”);

           套用到上面的例子中,假设我们需求过滤掉”and”我们可以这样写:

           $id = $_GET[‘id’];

           $id=str_replace(“and”,””,$id);

           这样,变量id字符串中的”and”被交换成空字符,可以理解为被删除。你可能会问,这不仅仅是一个字符吗?SQL中间似乎有很多执行字符。

           是的,在不同的应用环境下,我们可能需要在某个程序中交换十几个字符。因此,我们需要使用数组将字符交换包装成函数,以便我们随时调用它。

           字符交换函数

   黑客大户追款一般要多久追回

           function fliter_sql($value) {

           $sql = array(“select”,‘insert’,“update”,“delete”,“‘”,“/*”,

           “../”,“./”,“union”,“into”,“load_file”,“outfile”,”=”,”aNd”,”!”,”script>”,”<“,”>”,”iframe>”,’onlaod’,'”>’);

           $sql_re = array(“”,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””,””);

           return str_replace($sql,$sql_re,$value);

           }

           这是我经常使用的过滤函数,它基本上可以过滤掉绝大多数SQL注入。使用时只需调用此函数,例如:$id = fliter_sql($_GET[‘id’]); 即可。

           是管理员,frontopen管理员,嗯,介绍结束了!

           站内专栏 站点 站内专栏 站内专栏 QQ交谈

           捐 如果你认为这篇文章有用,请支持作者!鼓励作者写更好更多的文章!

                                                                                                                                               
  • 评论列表:
  •  断渊千鲤
     发布于 2022-08-09 09:31:51  回复该评论
  • ”,””,””);            return str_replace($sql,$sql_re,$value);            }        
  •  弦久望笑
     发布于 2022-08-09 10:21:23  回复该评论
  • d经过$_GET[”]停止过滤获得的参数字符。            例如:我们过滤掉它”and”,”=” 这样的字符,然后程序语句就变成了$sql = “SELECT * FROM `xxxx` WHERE `id` = 1 11 ORDER B
  •  南殷美咩
     发布于 2022-08-09 14:12:27  回复该评论
  • .php?id=1 ,那么程序语句的实际行为:$sql = “SELECT * FROM `xxxx` WHERE `id` = 1 ORDER BY id ASC”;(的确,这没问题)            再举一个例子,

发表评论:

«    2023年7月    »
12
3456789
10111213141516
17181920212223
24252627282930
31
文章归档
最新留言

Powered By

Copyright Your WebSite.Some Rights Reserved.