php 处理 非法访问

    • 前言
    • Session 方式
      • indexphp模拟身份验证
      • 目标资源页sessionphp
      • 效果演示
    • URL判断法
      • 源文件
      • 演示效果
    • 总结

前言

在浏览器输入一个网址链接,来定位一个资源是互联网工作的基础,但是为了网站安全性考虑,对网站进行非法访问是非常的有必要的。今天就来总结一下常用的禁止非法访问的一些实现方式。

Session 方式

大部分网站都会有登陆这么个功能,而基于此功能的一个很重要的模块就是“身份验证”,当然了和OAuth等专业的认证是没法比的啦。这里就是简单的对于用户登陆成功后的一个认证。尤其是在跨页处理一些事务的时候,Session的作用就会更加的明显了,今天就借助于Session来实现一个禁止非法访问的功能。

原理比较简单,用到了两个php文件,index.php的作用是模拟用户登录,然后再session中写入“身份”, 然后再访问该网站其他的页面的时候就会带着这个身份验证进行登录。

index.php模拟身份验证

<?php
session_start();
$_SESSION['name']='郭璞';

echo "Hello ".$_SESSION['name'];

目标资源页session.php

<?php

session_start();

$name = $_SESSION['name'];

if(!$name) {
    echo "403 Forbidden!请您先登录,然后在查看相关的信息!";
    die('//-^-\\');
}else{
    echo "认证通过了!";
}

效果演示

  • 没有身份标记时提示相关信息
  • 模拟验证
  • 模拟验证通过后访问资源页面

URL判断法

我个人觉得,根据URL方式来处理的一个比较好的方法是通过路由设置,通过一个路由大总管,处理一切外部请求,想来效果一定会是不错的吧。

下面介绍一下一个简易版的实现,功能就是防外链处理。核心就是通过Referer来实现。这点比较简单,做过爬虫的一下子就会明白了,就不多说哦。

源文件

<?php

$targeturl = "http://localhost/phpstorm/Test/index.php";
if($_SERVER['HTTP_REFERER']!=$targeturl) {
    //header("Location:".$targeturl); exit;
    echo "本站防外链哦,请到 <br /><a href='index.php'>点我访问资源页!!!</a><br />访问我们的资源哦!";
}else{
    echo "可以正常的访问资源页面了!";
}

涉及到的index.php文件简单的设置一个超链接即可,作用就是为资源也添加上一个Referer,来保证资源只能在本站访问的效果。

index.php文件内容

<?php

echo "首页哦!";

    echo "<h1><a href='url.php'>点我访问资源页!!!</a></h1>";

演示效果

大致可以通过这种方式实现防止外链的效果,但是如果使用这种方式,维护起来还是比较麻烦的。

总结

简单来回顾一下,在PHP中实现禁止非法访问看起来还是比较容易的,但是实际上这里面的学问还有很多很多,这里演示的不过是冰山一角上那头牛身上的一根微不足道的牛毛罢了。

从实用性的角度而言,各有各的好处,只能说各有利弊吧,不能说那一种更好,只能说哪一种更加适合。

通过添加身份标记的话比较轻便,也更加容易维护;通过URL路由控制的话维护起来比较麻烦,但是灵活性可能会有比较好的效果。

怎么说呢,具体情况具体分析吧。

时间: 2024-09-20 20:24:08

php 处理 非法访问的相关文章

mysql-PHP+MYSQL,我登陆之后,点击“注销”,为何会显示“非法访问”?

问题描述 PHP+MYSQL,我登陆之后,点击"注销",为何会显示"非法访问"? <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <h1>欢迎来到XXX网</

警告,非法访问资源,已经记录您的IP地址.

问题描述 windowsserver2012r2系统,发布网站后本机访问正常,通过浏览器访问,出现"警告,非法访问资源,已经记录您的IP地址."字样,请问如何解决? 解决方案 解决方案二:程序的问题,不是系统提示,吓唬人的.解决方案三:估计lz是偷人家程序,自己不知道怎么回事儿了.

Windows Server 2008网络访问保护控制非法访问

我们发现经常有一些不满足公司http://www.aliyun.com/zixun/aggregation/34129.html">安全策略的计算机接入公司网络,从公司的 DHCP服务器获得TCP/IP配置从而访问公司网络,这会带来了巨大的风险. 其实我们可以使用Windows Server 2008的 网络访问保护(NAP)技术来控制这些客户端从DHCP服务器获得配置,从而达到控制 它们对公司内网访问的目的.下面笔者部署环境就"NAP for DHCP"的部署和测试进

java实现非法访问异常示例_java

思路分析: 首先使用Class获得一个代表String类的类对象,然后使用Class类的getDeclaredFields()方法获得所有成员变量,并赋值给一个Field型数组,即得到String类的所有域.使用foreach()循环遍历所有域,使用Field类的getName()方法获得该成员变量的名称,如果域的名字是hash,尝试使用Field类的getInt(Object obj)方法获得指定对象中类型为int的该成员变量的值.依次捕获IllegalArgumentException异常和

在Windows7上安全审计文件的访问

当将某个文件夹设置为共享后,可以通过操作系统的访问审核功能,让系统记录下访问这个共享文件 的相关信息.这个功能在Windows7以前的操作系统版本中就可以实现.此时的安全审核在共享级.共享 时一个文件服务器的入口点,以便允许用户访问文件服务器上的特定目录.注意,共享级别的安全审核 ,无法做到审计文件访问,即文件级别的安全审核访问.也就是说,现在只是针对一个单独的文件需要 设置审计文件访问,在FAT32等比较老的文件系统中无法实现,他们只能够针对整个文件加设置访问审计 ,而无法针对特定的文件. 一

微软Win 7文件访问的安全审计策略

在审计文件访问策略中,可以根据需要选择多种安全审计策略,即可以告诉操作系统,在发生哪些操作时将访问的信息记入到安全日志中,包括访问人员.访问者的电脑.访问时间.进行了什么操作等等.如果将全部的访问操作都记录在日志中,那么日志的容量会变得很大,反而不易于后许的维护与管理.为此系统管理员在设置审计文件访问策略时,往往需要选择一些特定的事件,以减少安全访问日志的容量.为了达到这个目的,下面的一些建议各位系统管理员可以参考一下. 一.最少访问操作原则. 在Windows 7中,将这个访问操作分为很细,如

php中使用session防止用户非法登录后台的方法_php技巧

本文实例讲述了php中使用session防止用户非法登录后台的方法.分享给大家供大家参考.具体如下: 一般来说,我们登录网站后台时,服务器会把登录信息保存到session文件里,并通过读取session文件来判断是否可以进行后台操作. 以下面为例,假如admin.php是我们的后台操作页面,如果没有启用 session,那么,即便是没有登录,用户照样能访问到该页面,这时候,就需要用到 session 来防止用户非法登录到这个页面了.下面是三个文件的代码 登录页面:login.php 复制代码 代

云计算中基于否定规则的访问控制技术的研究

云计算中基于否定规则的访问控制技术的研究 吴正学 戴牡红 数据的安全性和隐私保护给云计算领域带来了极大挑战,为实现合作企业间在云环境下公开共享部分数据且不涉及保密信息,提出一种基于否定规则的访问控制技术.主要思想是通过判断访问查询是否授权,检测授权与否定规则是否存在冲突,来达到阻止非法访问的目的.理论分析和实验结果表明该机制能有效地保障云数据的安全. 云计算中基于否定规则的访问控制技术的研究

Memcache防止被非法读取数据安全配置

memcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,轻则数据泄露被其他无关人员查看,重则服务器被入侵,因为Mecache是以root权限运行的,况且里面可能存在一些我们未知的bug或者是缓冲区溢出的情况,这些都是我们未知的,所以危险性是可以预见的.为了安全起见,我做两点建议,能够稍微的防止黑客的入侵或者数据的泄露. 1.内网访问或者本地访问: 最好把两台服务器之间的访问是内网形态的,一般是Web服务器跟Memcache服