hypothermic / phpxssblock
阻止试图在您的网页表单上使用 XSS 的恶意脚本小子!
v1.1.0
2019-10-27 00:00 UTC
Requires
- php: >=7.1
- ext-pdo: *
Requires (Dev)
- phpunit/phpunit: 6.*
This package is auto-updated.
Last update: 2024-09-28 03:20:06 UTC
README
阻止尝试通过 XSS 利用您网站的客户 IP 地址。
使用方法
查看form.php 示例以更好地了解如何实现此库。
在每页顶部添加
<?php use HypothermicIT\XSSBlock\XBlock; if (XBlock::isBlocked($_SERVER['REMOTE_ADDR'])) { include 'my-error-page.html'; exit(); } ?>
并且,在处理用户输入时,通过 XBlock Sanitize 方法验证每个 $_GET
和 $_POST
。
$username = XBlock::Sanitize($_GET["username"], $_SERVER['REMOTE_ADDR']); // For example, show it as a HTML paragraph. echo("<p>Hello " . $username . "</p>");
数据库
此库需要一个数据库来存储被阻止 IP 的列表。设置数据库非常简单,默认包含 MySQL/MariaDB 的实现。您只需创建数据库用户即可。
CREATE USER IF NOT EXISTS `xssblock-user`@`localhost` IDENTIFIED BY "change_me!"; CREATE DATABASE IF NOT EXISTS `XSSBlock`; USE `XSSBlock`; CREATE TABLE IF NOT EXISTS `XSSBlock`.`Registry` (`ip_addr` varchar(48) NOT NULL PRIMARY KEY) ENGINE=InnoDB DEFAULT CHARSET=utf8; GRANT SELECT, INSERT ON `XSSBlock`.`Registry` TO `xssblock-user`@`localhost`;
默认情况下,MySQL 实现将尝试使用用户 xssblock-user
连接到 localhost:3306
。您可以在 config.php
中更改设置。
弱点
当然,此项目更多的是为了吓跑攻击者,而不是提供安全。红色屏幕当然看起来很可怕,会让人望而却步。
请记住,一个聪明的攻击者可以通过使用代理/VPN 或连接到 Tor 网络来“更改”他的 IP 地址。