hyper
f 防止xss攻击自定义中间件封装
<?php
declare(strict_types=1);
namespace AppMiddleware;
use PsrContainerContainerInterface;
use PsrHttpMessageResponseInterface;
use PsrHttpServerMiddlewareInterface;
use PsrHttpMessageServerRequestInterface;
use PsrHttpServerRequestHandlerInterface;
class XSSProtectionMiddleware implements MiddlewareInterface
{
/**
* @var ContainerInterface
*/
protected $container;
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$input = $request->all();
array_walk_recursive($input, function(&$input) {
$input = (strip_tags(htmlspecialchars(htmlentities($input, ENT_QUOTES, 'UTF-8'))));
});
$request = $request->withQueryParams($input);
return $handler->handle($request);
}
}
laravel、lumen防止xss攻击自定义中间件封装
<?php
namespace AppHttpMiddleware;
use Closure;
use IlluminateHttpRequest;
class XSSProtectionMiddleware
{
/**
* Handle an incoming request.
*
* @param IlluminateHttpRequest $request
* @param Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
$input = $request->all();
array_walk_recursive($input, function(&$input) {
$input = (strip_tags(htmlspecialchars(htmlentities($input, ENT_QUOTES, 'UTF-8'))));
});
$request->merge($input);
return $next($request);
}
}