Created data filter to avoid XSS attack

This commit is contained in:
2017-09-11 11:32:14 +07:00
parent 146b5d33e6
commit 213f598631
3 changed files with 129 additions and 7 deletions

62
Core/XSS.php Normal file
View File

@@ -0,0 +1,62 @@
<?php
namespace Core;
class XSS
{
public static function avoid($args = [])
{
if ($args) {
if (array_key_exists('exclude', $args)) {
$excludes = $args['exclude'];
foreach ($excludes as $exclude) {
$includes[$exclude] = $args[$exclude];
unset($args[$exclude]);
}
unset($args['exclude']);
}
foreach ($args as $key => $value) {
$args[$key] = htmlspecialchars($value);
}
// Re-include excluded data
if (isset($includes)) {
foreach ($includes as $key => $value) {
$args[$key] = $value;
}
}
return $args;
}
}
public static function decode($args = []) {
if ($args) {
if (array_key_exists('exclude', $args)) {
$excludes = $args['exclude'];
foreach ($excludes as $exclude) {
$includes[$exclude] = $args[$exclude];
unset($args[$exclude]);
}
unset($args['exclude']);
}
foreach ($args as $key => $value) {
$args[$key] = htmlspecialchars_decode($value);
}
// Re-include excluded data
if (isset($includes)) {
foreach ($includes as $key => $value) {
$args[$key] = $value;
}
}
return $args;
}
}
}