您的位置:首页 > 新闻资讯 >文章内容
PHP如何防止伪造地址攻击
来源:互联网 作者:admin 时间:2019-10-03 10:05:00

  除了MySQL,代理IPH还能够用于很多不同的开发软件中,比如PHP。PHP如何防止伪造IP地址注入攻击?跟着机灵代理来看看这个问题如何解决吧!


PHP如何防止伪造地址攻击


  伪造IP地址进行注入攻击:


  IP伪造有几种途径,一种是通过是修改IP数据包,有兴趣的可以去看看IP数据包的结构,还有一种就是利用修改http头信息来实现IP伪造。涉及到“客户端”IP的通常使用3个环境变量:$_SERVER['HTTP_CLIENT_IP']和$_SERVER['X_FORWARDED_FOR']还有$_SERVER['REMOTE_ADDR']实际上,这3个环境变量都有局限性。前两个是可以随意伪造。只要在发送的http头里设置相应值就可以,任意字符都可以,而第3个环境变量,如果用户使用了匿名代理,那这个变量显示的就是代理IP。


  一般获取IP后更新到数据库代码如:$sql="update t_users set login_ip='".get_client_ip()."' where ...",而如果接收到的ip地址是:xxx.xxx.xxx.xxx';delete from t_users;-- ,代入参数SQL语句就变成了:"update t_users set login_ip='xxx.xxx.xxx.xxx';delete from t_users;-- where ...


  所以获取IP地址后,务必使用正则等对IP地址的有效性进行验证,另外一定要使用参数化SQL命令!


  总结:


  1、"X-FORWARDED-FOR" 是代理服务器通过 HTTP Headers 提供的客户端IP。代理服务器可以伪造任何IP。


  2、要防止伪造,不要读这个IP即可(同时告诉用户不要用HTTP 代理)。


  3、如果是PHP,$_SERVER['REMOTE_ADDR'] 就是跟你服务器直接连接的IP,用这个就可以了。


  获取服务器IP地址:


  /**

  * 获取服务端IP地址

  * @return string

  * @since 1.0 2016-7-1 SoChishun Added.

  */

  function get_host_ip() {

  return isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '');

  }


  从了解攻击是如何实现到防止的解决方案,我们可以看到PHP的使用是非常具有灵活性的。想要了解更多代理IP、大数据相关资讯,请关注机灵代理。


相关文章内容简介
推荐阅读
  • 17 2019-04
    遇到Access Denied,爬虫的代理IP要提高质量

    防封,这是大部分爬虫都需要考虑的问题,尤其是爬着遇到Access Denied,是不是代理IP不管用了?还是说爬虫的代理IP要提高质量?

  • 13 2020-03
    HTTP代理ip的实现

    Web代理是一种存在于网络中间的实体,提供各式各样的功能。现代网络系统中,Web代理无处不在。有关HTTP的博文中,多次提到了代理对HTTP请求及响应的影响。今天谈谈HTTP代理本身的一些原理,

  • 13 2019-05
    代理IP匿名属性的选择

    代理IP匿名属性的选择,代理IP除了要求质量之外,还需要对匿名程度有要求。根据匿名程度进行分类,可分为透明代理IP,普通匿名代理IP和高级匿名代理IP。

  • 19 2019-10
    代理IP爬虫步骤分解

    互联网通过不同的链接相互连接起来,就像是一张大的蜘蛛网一样,互相沟通。网络爬虫正是基于此,才能够通过一个网络节点到另外一个网络节点来获取信息。

  • 19 2019-06
    用代理IP爬取抖音短视频数据

    用代理IP爬取抖音短视频数据,方法是怎样的?虽然现在抖音没有那么火了,但是用户也是非常多的,很多用户在空余时间都上抖音,如果想在抖音中抓取数据来获取有价值的信息,这应该怎么

  • 13 2019-06
    http和socks5代理ip的用途

    http和socks5代理ip的用途,有些可能都不清楚的,只知道使用代理ip是可以隐藏ip地址的,其实除了隐藏ip地址之外,http和socks5代理ip还有其他的用途,那么还有哪些用途呢?

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部