Гарантирует ли filter_var, что $_SERVER["QUERY_STRING"] будет защищен от инъекции XSS?

############################################
## Connection Creation for Both Databases ##
############################################

//Create Connection for Pokemon Test Database
$PokemonConnection=mysqli_connect("URL","username","password","database");

//Check Pokemon Test Database Connection for Errors
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

//Create Connection for Xenforo Forum Database
$XenConnection=mysqli_connect("URL","username","password","database");

//Check Xenforo Forum Database Connection for Errors
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

############################################
###Password Protection for Initialization###
############################################

//Sanitize Password Passed From xenForo and Redirect If Invalid ID

$Password = filter_var($_SERVER["QUERY_STRING"], FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_EMAIL);

if($Password != 'Password')
{
    header("Location: http://www.url.com/error.html");
    echo 'Invalid String Length';
    exit;
}

Это мой код, который начинает инициализацию моего скрипта, и я обеспокоен тем, что я могу быть недостаточно защищен от инъекций, если я решу продолжить текущую реализацию этого скрипта.

Я читал, что фильтрация переменных работает, чтобы предотвратить это, но я также видел примеры, где это можно игнорировать и использовать синтаксис в URL для использования скрипта при использовании QUERY_STRING.

1 ответ

Решение

Чтобы очистить строку для SQL-инъекции, вы должны экранировать ее специальные символы.

использование mysqli_real_escape_string() или больше в основном addslashes(),

Чтобы очистить строку от XSS, используйте htmlentities()

Хотя вам не нужно очищать пароль, просто хешируйте пароль вашей базы данных, хешируйте его таким же образом и сравнивайте. Вы не должны показывать эту клиентскую сторону, поэтому нет необходимости очищать ее от XSS.

Другие вопросы по тегам