Инструменты пользователя

Инструменты сайта


wiki:devel:security

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
wiki:devel:security [2025/01/03 17:34] – [Cross Site Request Forgery (CSRF)] VladPolskiywiki:devel:security [2025/01/03 17:48] (текущий) – [Reporting Security Issues] VladPolskiy
Строка 182: Строка 182:
   * [[https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29|Объяснение OWASP]]   * [[https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29|Объяснение OWASP]]
  
-==== Typical Vulnerability Example ====+==== Типичный пример уязвимости ====
  
-Below is the simplest example to start. You may have a more complicated plugin of your own to secure, here is just a simple example based on form.+Ниже приведен простейший пример для начала. У вас может быть более сложный плагин для защиты, вот простой пример на основе формы.
  
-Imagine you want to know something which can be answered to Yes or No, you would have a form of this type:+Представьте, что вы хотите узнать что-то, на что можно ответить «Да» или «Нет», у вас получится форма такого типа:
  
 <code html> <code html>
Строка 196: Строка 196:
 </code> </code>
  
-Then you process this form as follows:+Затем вы обрабатываете эту форму следующим образом:
  
 <code php> <code php>
Строка 206: Строка 206:
 </code> </code>
  
-So a user is connected to answer this question, but he doesn't know the response yet. Let's take time to think and browse the web... +Итак, пользователь подключен, чтобы ответить на этот вопрос, но он пока не знает ответа. Давайте уделим время размышлениям и просмотрим веб-страницы… Теперь пользователь посещает вредоносный веб-сайт, который знает или нет, что пользователь может быть подключен к вашему DokuWiki. На этом веб-сайте разработчик включил этот HTML- тег изображения:
-Now the user is visiting a malicious website, one which know, or not, that the user may be connected to your DokuWiki. In this website, the developer included this HTML image tag:+
  
 <code html> <code html>
Строка 213: Строка 212:
 </code> </code>
  
-What will the user's browser do then?+Что тогда будет делать браузер пользователя?
  
-The browser will process this image as any other and will send a request to this URL. Your plugin will then see that ''$_GET['yn']'' is set and will call the ''do_something_with_yn()'' function.+Браузер обработает это изображение как любое другое и отправит запрос на этот URL . Ваш плагин увидит, что ''$_GET['yn']'' установлено, и вызовет ''do_something_with_yn()'' функцию.
  
-That's one of the examples of CSRF. Now, how to fix this security hole?+Это один из примеров CSRF. Теперь, как исправить эту дыру в безопасности?
  
-==== Prevent CSRF ====+==== Предотвращение CSRF-атак ====
  
-Remember your form above? Let's add an input in it:+Помните вашу форму выше? Давайте добавим в нее ввод:
  
 <code html> <code html>
Строка 232: Строка 231:
 </code> </code>
  
-Do you see the first input? Yes? Good. Now you have to check the security token when you receive the form, before processing it:+Видите первый ввод? Да? Хорошо. Теперь вам нужно проверить токен безопасности при получении формы, перед ее обработкой:
  
 <code php> <code php>
Строка 242: Строка 241:
 </code> </code>
  
-As the malicious website will never find the value of the "sectok" hidden input, your form is no longer vulnerable to CSRF.+Поскольку вредоносный веб-сайт никогда не найдет значение скрытого ввода «sectok», ваша форма больше не уязвима для CSRF.
  
-**Note:** If the security token is not valid, the ''checkSecurityToken()'' function displays a message which informs the user.+**Примечание**: Если токен безопасности недействителен, ''checkSecurityToken()'' функция отображает сообщение, информирующее пользователя.
  
  
  
-===== Remote Code Inclusion =====+===== Удаленное включение кода =====
  
-This attack allows an attacker to inject (PHP) code into your application. This may occur on including files, or using unsafe operations functions like [[phpfn>eval()]] or [[phpfn>system()]].+Эта атака позволяет злоумышленнику внедрить код (PHP) в ваше приложение. Это может произойти при включении файлов или использовании небезопасных функций операций, таких как [[phpfn>eval()]] или [[phpfn>system()]].
  
-**Always filter any input** that will be used to load files or that is passed as an argument to external commands.+**Всегда фильтруйте любые входные данные**, которые будут использоваться для загрузки файлов или которые передаются в качестве аргумента внешним командам.
  
-===== Information leaks =====+===== Утечка информации =====
  
-This attack may lead to the exposure of files that should usually be protected by DokuWiki's ACL or it might expose files on the server (like ''/etc/passwd'').+Эта атака может привести к раскрытию файлов, которые обычно должны быть защищены ACL DokuWiki , или может раскрыть файлы на сервере (например, ''/etc/passwd'').
  
-**Always filter any input** that will be used to load files or that is passed as an argument to external commands.+**Всегда фильтруйте любые входные данные,** которые будут использоваться для загрузки файлов или которые передаются в качестве аргумента внешним командам.
  
-**Always use DokuWiki's ACL check functions when accessing page data**.+**Всегда используйте функции проверки ACL DokuWiki при доступе к данным страницы.**
  
-===== SQL injection =====+===== SQL-инъекция =====
  
-This attack is rarely relevant in DokuWiki because no database is used. However if your plugin accesses a database always escape all values before using them in SQL statements.+Эта атака редко актуальна в DokuWiki, поскольку база данных не используется. Однако, если ваш плагин обращается к базе данных, всегда экранируйте все значения перед их использованием в операторах SQL.
  
-More info:+Дополнительная информация:
  
-  * [[wp>SQL injection]]+  * [[wp>SQL injection|SQL-инъекция]]
  
  
-===== Reporting Security Issues =====+===== Сообщение о проблемах безопасности =====
  
-If you encounter an issue with a plugin please inform the author of the plugin via email, optionally putting [[andi@splitbrain.org|Andi]] or the [[:mailinglist]] on CC.+Если у вас возникли проблемы с плагином, сообщите об этом автору плагина по электронной почте, при желании указав [[andi@splitbrain.org|Andi]] or the [[wiki:mailinglist|список рассылки]] on CC.
  
-Additionally a ''securityissue'' field with a short description of the problem should be added to the [[plugin:repository|data]] on the page of the plugin. This will create a red warning box and will delist the plugin from the main plugin list.+Дополнительно к [[wiki:lugin:repository|данным]] на странице плагина ''securityissue'' следует добавить поле с кратким описанием проблемы . Это создаст красное предупреждающее поле и исключит плагин из основного списка плагинов.
  
-Once the issue was fixed and a new release was made, this field should be removed again.+После устранения проблемы и выпуска новой версии это поле следует снова удалить.
wiki/devel/security.1735914847.txt.gz · Последнее изменение: — VladPolskiy

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki