


Detaillierte Einführung in den Umgang mit illegalen Zugriffen in PHP (Bild)
前言
在浏览器输入一个网址链接,来定位一个资源是互联网工作的基础,但是为了网站安全性考虑,对网站进行非法访问是非常的有必要的。今天就来总结一下常用的禁止非法访问的一些实现方式。
Session 方式
大部分网站都会有登陆这么个功能,而基于此功能的一个很重要的模块就是“身份验证”,当然了和OAuth等专业的认证是没法比的啦。这里就是简单的对于用户登陆成功后的一个认证。尤其是在跨页处理一些事务的时候,Session的作用就会更加的明显了,今天就借助于Session来实现一个禁止非法访问的功能。
原理比较简单,用到了两个php文件,index.php的作用是模拟用户登录,然后再session中写入“身份”, 然后再访问该网站其他的页面的时候就会带着这个身份验证进行登录。
index.php模拟身份验证
<?phpsession_start();$_SESSION['name']='郭璞';echo "Hello ".$_SESSION['name'];
目标资源页session.php
<?phpsession_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 id="a-nbsp-href-url-php-点我访问资源页-a"><a href='url.php'>点我访问资源页!!!</a></h1>";
演示效果
大致可以通过这种方式实现防止外链的效果,但是如果使用这种方式,维护起来还是比较麻烦的。
总结
简单来回顾一下,在PHP中实现禁止非法访问看起来还是比较容易的,但是实际上这里面的学问还有很多很多,这里演示的不过是冰山一角上那头牛身上的一根微不足道的牛毛罢了。
从实用性的角度而言,各有各的好处,只能说各有利弊吧,不能说那一种更好,只能说哪一种更加适合。
通过添加身份标记的话比较轻便,也更加容易维护;通过URL路由控制的话维护起来比较麻烦,但是灵活性可能会有比较好的效果。
怎么说呢,具体情况具体分析吧。
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Umgang mit illegalen Zugriffen in PHP (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
