Skip to content

Commit 4e35028

Browse files
committed
fixed docs links
1 parent c485639 commit 4e35028

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

manual/miscells/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ PHPC и кодировки MySQL
1010
Установка сторонних скриптов
1111
Маленькие хитрости
1212

13-
Назад: Стандартные константы • К началу: Документация • Далее: PHPC и безопасность
13+
Назад: [Стандартные константы](https://easy-phpc.github.io/manual/api/constants/) • К началу: [Документация](https://easy-phpc.github.io/manual/) • Далее: [PHPC и безопасность](https://easy-phpc.github.io/manual/miscells/security/)

manual/miscells/security/index.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# PHPC и безопасность
22

3-
Назад: Прочее • К началу: Документация • Далее: PHPC и кодировки MySQL
3+
Назад: [Прочее](https://easy-phpc.github.com/manual/miscells) • К началу: [Документация](https://easy-phpc.github.io/manual/) • Далее: [PHPC и кодировки MySQL]
44

55
Содержание
66
1. Бэкдоры (Backdoors)
@@ -46,7 +46,7 @@ acceptFloatParameter: функция работает точно так же, к
4646
acceptStringParameter: функции передается параметр name (название принимаемого параметра). Функция всегда возвращает строку, даже если параметр не был указан вообще (в этом случае возвращается пустая строка). Если вы хотите, чтобы возвращаемое значение было не длиннее определенной величины, просто передайте функции второй параметр limit. Важно помнить, что по умолчанию функция всегда выполняет оптимизацию переданных данных − удаляет все пробелы из начала и конца строки, а также удаляет из строки все повторяющиеся пробелы. Если вы хотите отключить оптимизацию, передайте функции false в качестве третьего параметра optimize.
4747
Таким образом, для вышеприведенного примера (отображение галереи) достаточно написать:
4848

49-
$id=acceptIntParameter("id",1,2);
49+
```$id=acceptIntParameter("id",1,2);```
5050
и никакие взломщики вам уже не страшны.
5151

5252
5. Уязвимости, связанные с register_globals=On
@@ -65,23 +65,23 @@ $id=acceptIntParameter("id",1,2);
6565

6666
Пример уязвимого запроса:
6767

68-
"SELECT * FROM users WHERE username='$username'"
68+
```"SELECT * FROM users WHERE username='$username'"```
6969
В PHP Compiler предлагается несколько иной способ экранирования строк в SQL-запросах. Вместо использования кавычек в запросах настоятельно рекомендуется использовать функцию slashes. Данная функция делает то же самое, что и addslashes, но дополнительно к этому добавляет одинарные кавычки в начале и конце строки. Помня это нехитрое правило (никогда не использовать кавычки напрямую), вы всегда будете писать код, устойчивый к SQL-инъекциям.
7070

7171
Пример правильного запроса:
7272

73-
"SELECT * FROM users WHERE username=".slashes($username)
73+
```"SELECT * FROM users WHERE username=".slashes($username)```
7474
7. Межсайтовый скриптинг
7575

7676
Межсайтовый (или кросс-сайтовый) скриптинг − довольно хитрая уязвимость, которая в принципе опасна только для сложных динамических сайтов с поддержкой аккаунтов пользователей. В результате этой уязвимости злоумышленник может получить список cookies, который хранится на вашем компьютере (причем даже не все cookies, а лишь те, которые относятся к уязвимому сайту). На форуме, например, это может привести к краже вашего пароля. Все, что необходимо сделать злоумышленнику − это внедрить в текст страницы определенный HTML-код (обычно написанный на Javascript).
7777

7878
Для того, чтобы помешать этому, следует всегда фильтровать данные, полученные от посетителя, перед тем, как выводить их на страницу. Например, в гостевой книге нельзя просто так взять и вывести комментарий неизвестного гостя − это уязвимость:
7979

80-
echo $comment;
80+
```echo $comment;```
8181
Вместо этого перед выводом необходимо отфильтровать комментарий:
8282

83-
$comment=htmlspecialchars($comment);
84-
echo $comment;
83+
```$comment=htmlspecialchars($comment);
84+
echo $comment;```
8585
Для защиты от данной уязвимости весь вывод данных в PHPC фильтруется автоматически. Каждый раз, когда вы пишете в тексте шаблона вывод переменной при помощи тега <var:...>, эта переменная фильтруется перед выводом. Кроме того, при выводе форматированного текста, когда указанные посетителем данные могут попасть в значения параметров HTML-тегов, к этим данным применяется еще более строгая проверка.
8686
8787
Вообще межсайтовый скриптинг − это такая уязвимость, от которой сложнее всего защитить проект. Я должен признаться, что не уверен в стопроцентной устойчивости движка к ней. Тем не менее, начиная с версии 2.4.1, система стала неуязвимой ко всем методам межсайтового скриптинга, которые были мне известны.
@@ -90,7 +90,7 @@ echo $comment;
9090
9191
Защита админпанели от несанкционированного доступа − последний вопрос, который хотелось бы рассмотреть здесь. Как и в остальной части движка, скрипты в каталоге admin делятся на основные и вспомогательные. Ко вспомогательным относятся файлы controls.php и function.php, к основным − все остальное. Для того, чтобы предотвратить доступ злоумышленника к панели, каждый скрипт в самом начале обязательно должен подключать файл global.php:
9292
93-
require "global.php";
93+
```require "global.php";```
9494
Файл global.php создает все необходимые переменные и классы, а также проверяет авторизацию. Если кто-то попытается запросить защищенный файл, не авторизовавшись, работа скрипта будет немедленно прекращена. После авторизации зашифрованный пароль администратора записывается во временный cookie под именем phpcpassword. Чтобы выйти из админпанели и удалить этот cookie с компьютера, достаточно закрыть браузер.
9595
96-
Назад: Прочее • К началу: Документация • Далее: PHPC и кодировки MySQL
96+
Назад: [Прочее](https://easy-phpc.github.com/manual/miscells) • К началу: [Документация](https://easy-phpc.github.io/manual/) • Далее: [PHPC и кодировки MySQL]

0 commit comments

Comments
 (0)