Установка umask пользователя Apache

ВАЖНО

. Лучший способ предотвратить SQL Injection - использовать подготовленные выражения вместо экранирования , поскольку демонстрирует принятый ответ .

Существуют библиотеки, такие как Aura.Sql и EasyDB , которые позволяют разработчикам легче использовать подготовленные инструкции. Чтобы узнать больше о том, почему подготовленные операторы лучше в останавливать SQL-инъекцию , см. этот mysql_real_escape_string() обход и недавно зафиксированные уязвимости Unicode SQL Injection в WordPress .

Предотвращение впрыска - mysql_real_escape_string ()

У PHP есть специально созданная функция для предотвращения этих атак. Все, что вам нужно сделать, это использовать функцию функции mysql_real_escape_string.

mysql_real_escape_string берет строку, которая будет использоваться в запросе MySQL, и возвращает ту же строку со всеми попытками внедрения SQL безопасно сбежал. В принципе, это заменит эти неприятные кавычки ('), которые пользователь может ввести с помощью заменителя в MySQL, сэкономленная цитата.

ПРИМЕЧАНИЕ: вы должны подключиться к базе данных, чтобы использовать эту функцию!

// Подключение к MySQL

$name_bad = "' OR 1'"; 

$name_bad = mysql_real_escape_string($name_bad);

$query_bad = "SELECT * FROM customers WHERE username = '$name_bad'";
echo "Escaped Bad Injection: 
" . $query_bad . "
"; $name_evil = "'; DELETE FROM customers WHERE 1 or username = '"; $name_evil = mysql_real_escape_string($name_evil); $query_evil = "SELECT * FROM customers WHERE username = '$name_evil'"; echo "Escaped Evil Injection:
" . $query_evil;

Более подробную информацию вы найдете в MySQL - SQL Injection Prevention .

54
задан Community 23 May 2017 в 01:54
поделиться

3 ответа

Apache наследовал umask от его родительского процесса (т.е. процесс стартовый Apache); это должно обычно быть /etc/init.d/ сценарий. Таким образом поместите umask команда в том сценарии.

9
ответ дан heemayl 7 November 2019 в 07:46
поделиться

Дрейф далеко от "испытанного и истинного Apache путь" обычно не рекомендуется. Много времени и трудно выигранного опыта вошло в выбор таких вещей.

-12
ответ дан GEOCHET 7 November 2019 в 07:46
поделиться

Для CentOS и других дистрибутивов Red Hat добавьте параметр umask в / etc / sysconfig / httpd и перезапустите apache.

[root ~]$ echo "umask 002" >> /etc/sysconfig/httpd
[root ~]$ service httpd restart

Дополнительная информация: Apache2 umask | MDLog: / sysadmin

Для систем Debian и Ubuntu аналогичным образом отредактируйте / etc / apache2 / envvars .

112
ответ дан 7 November 2019 в 07:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: