aleckyann/filter

一个简单的类,用于过滤并接收 GET 和 POST 请求。

安装: 9

依赖项: 1

建议者: 0

安全: 0

星级: 7

关注者: 1

分支: 0

类型:项目

dev-master 2017-01-27 01:14 UTC

This package is not auto-updated.

Last update: 2022-01-08 12:39:21 UTC


README

===

  • 通过控制 GET 和 POST 输入对变量进行类型检查

    • 整数: 0, 1, 2, 3, 4, 5, 88, 572, ...
    • 浮点数(float): 0.21, 1.333333. 93.33, ...
    • 字符串: Olá mundo, hakunamatata, ...
    • 电子邮件: teste@gmail.com, example@example.com.br, ...
    • 布尔值: 0, 1, false, true
    • CPF: 106.312.266-0510631226605
    • bad_languages: censured :)
  • 变量大小控制

    • 最大长度。
    • 最小长度。
  • required 行为变量(GET 和 POST)。

  • 防止 JavaScript 注入。

  • 防止 HTML 注入。

  • 防止 PHP 注入。

  • 防止 XSS。

  • 防止 CSRF 的函数

    • 使用 token 创建动态 unput。
    • 验证接收到的输入。

要开始使用过滤器,只需将它们添加到您的 load 或控制器文件中

require_once('secury.php');

或者使用 composer

composer require aleckyann/secury:dev-master

接收和过滤 POST 请求的示例

$email = post::email('email');

接收和过滤 GET 请求的示例

$id = get::int('id');

在您的应用程序中过滤变量的示例

$nome_com_sr = 'Sr. ' . var::string('nome');

您可以使用 6 种类型的过滤器来处理 GET 请求和 5 种类型的过滤器来处理 POST 请求,请查看

('name_da_requisicao', 'min-length', 'max-length');

验证电子邮件

get::email('name_da_requisicao');

post::email('name_da_requisicao');

variavel::email($email);

验证整数

get::int('name_da_requisicao');

post::int('name_da_requisicao');

variavel::int($int);

验证浮点数

get::float('name_da_requisicao');

post::float('name_da_requisicao');

variavel::float($float);

验证字符串

get::string('name_da_requisicao');

post::string('name_da_requisicao');

variavel::string($string);

验证布尔值

get::boolean('name_da_requisicao');

post::boolean('name_da_requisicao');

variavel::boolean($boolean);

验证 CPF

get::cpf('name_da_requisicao');

post::cpf('name_da_requisicao');

variavel::cpf($boolean);

此方法将验证带有或不带有点和划线的 CPF,并返回没有点和划线的 CPF...

如果您的请求或数据输入无效,则返回一个值为 'false' 的字符串

过滤字符串并防止不恰当的词语|不良语言

get::badString('name_da_requisicao');

post::badString('name_da_requisicao');

variavel::badString($badString);

如果用户发送了不恰当的词语,则将其替换为 '#$%@!'

您也可以通过传递函数的第二个和第三个参数来定义您输入的最小和最大值,请查看

post::string('name_da_requisicao', 1, 40);

如果输入的字符串小于 1 个字符或大于 40 个字符,则此代码将返回 false

如果您只想定义 "required" 行为,则将 1 作为函数的第二个参数,这样 null 等值将返回 false,请查看

post::int('name_da_requisicao', 1);

过滤器可以保护您的应用程序免受各种注入攻击,例如:PHP 注入、脚本注入、HTML 注入 | XSS,以及数据输入的类型检查。输入类型检查为您的应用程序提供了更大的健壮性。

CSRF 保护

为了保护您的请求免受 CSRF 攻击,请按照以下示例操作

<form>
<input type="email" name="login">
<input type="password" name="senha">
<?= csrf::input() ?>
<input type="submit" value="Enviar">
</form>

本方法生成一个包含安全令牌的输入,该令牌会自动以动态方式生成。

然后,在其控制器中,通过另一个方法进行验证

$login = post::email('login');
$senha = post::string('senha');
$resultadoCSRF = csrf::verify();

if($resultadoCSRF == false){
  header('Location: index');
} else {
  login($pdo, $login, $senha);
}