Советы по Mysql - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Thu, 25 Apr 2024 13:17:43 +0300 Не помещай в БД данные без обработки. Это можно сделать либо с помощью подготовленных выражений, либо обрабатывай параметры вручную, а значит:<br> - все числовые параметры должны быть приведены к нужному типу<br> - все остальные параметры должны быть обработаны функцией mysql_real_escape_string() и заключены в кавычки, как уже сказали выше)) https://visavi.net/topics/40297/659628 Советы по Mysql egoist Tue, 11 Mar 2014 02:38:40 +0400 Сообщения https://visavi.net/topics/40297/659628 10. параноя? достаточно одного mysql_escape_string https://visavi.net/topics/40297/659571 Советы по Mysql Богдан Mon, 10 Mar 2014 17:30:09 +0400 Сообщения https://visavi.net/topics/40297/659571 mysql_escape_string(htmlspecialchars(stripslashes($ololo)))<br> вот и все проблемы https://visavi.net/topics/40297/659562 Советы по Mysql Алексей Mon, 10 Mar 2014 16:24:58 +0400 Сообщения https://visavi.net/topics/40297/659562 <blockquote class="blockquote"><strong>shilo</strong> (10 Марта 2014 / 12:47)<br> 5. <strong>Аварский</strong>, &gt; пароль 8-12 символов<br> не, ну это ппц</blockquote> Для подбора облегчил https://visavi.net/topics/40297/659555 Советы по Mysql YouMobe Mon, 10 Mar 2014 16:03:45 +0400 Сообщения https://visavi.net/topics/40297/659555 5. <strong>Аварский</strong>, &gt; пароль 8-12 символов<br> не, ну это ппц https://visavi.net/topics/40297/659533 Советы по Mysql shilo Mon, 10 Mar 2014 12:47:15 +0400 Сообщения https://visavi.net/topics/40297/659533 <blockquote class="blockquote"><strong>Avrong</strong> (9 Марта 2014 / 15:05)<br> 5. <strong>Аварский</strong>, а если нужно больше символов? Например сбщ в лс?</blockquote> Аварцы общаются коротко.<img src="https://visavi.net/uploads/stickers/D.gif" alt="D"> https://visavi.net/topics/40297/659502 Советы по Mysql YouMobe Sun, 09 Mar 2014 16:34:41 +0400 Сообщения https://visavi.net/topics/40297/659502 5. <strong>Аварский</strong>, а если нужно больше символов? Например сбщ в лс? https://visavi.net/topics/40297/659495 Советы по Mysql ____________________ Sun, 09 Mar 2014 15:05:07 +0400 Сообщения https://visavi.net/topics/40297/659495 Не знаю как другие, но я так делаю. Например поля логин и пароль. Ограничиваю длину логина например на 12-13 символах, ну и пароль 8-12 символов. И при приеме данных просто проверяю длину строки, если длина строки больше, то посылаю по дальше. Ну и попробуйте теперь написать sql запрос с длиной не более 12 символов. )) https://visavi.net/topics/40297/659489 Советы по Mysql Абдула Sun, 09 Mar 2014 13:17:41 +0400 Сообщения https://visavi.net/topics/40297/659489 Попробую описать как я понимаю как обезопасить себя от SQL injection<br> Понятно что если злоумышленник сможет выполнить SQL команды на сервере, ему достаточно будет узнать имя таблицы к примеру:<br> DELETE<br> FROM имя_таблицы;<br> Допустим, что у вас есть таблица пользователей Users, состоящий из трех полей: &#039;id&#039;, &#039;name&#039;, &#039;password&#039; Запрос на выборку данных может выглядеть так:<br> SELECT * <br> FROM Users<br> WHERE id = $_GET[id]<br> В данном запросе поле &#039;id&#039; сравнивается со значением переменной.<br> Если эта переменная получена как параметр сценария через URL или Cookie, и нет никаких проверок на запрещенные символы, то запрос уязвимый. <br> Можно модифицировать запрос <br> SELECT * <br> FROM Users<br> WHERE id = 10 OR name &#039;Администратор&#039; <br> Чтобы этого не произошло, в таком случаю нужно точно представлять какие данные хранятся в таблице, и позволят передавать в качестве параметра те данные, которые разрешены. Например поле &#039;id&#039; - это числовое поле, а значит в переменной кроме цифр 0-9 ничего не должно передаваться. <br> вот к примеру создай файл<br> <pre class="prettyprint"> &lt;form action=&quot;&quot; method=&quot;GET&quot;&gt; &lt;input name=&quot;id&quot;&gt; &lt;/form&gt; &lt;?php $id = (int)$_GET&#91;&#039;id&#039;]; print(&#039;SELECT * FROM Users WHERE id=&#039;.$id) ?&gt; </pre> Таким же способом можно и строку обработать, а можно и через регулярные выражения сделать.<br> у PHP есть ряд функции<br> - Экранирование mysql_real_escape_string<br> <br> Через SQL запросы можно получить доступ к файловой системе <br> Например, такой код который сохраняет в PHP файле сценарий:<br> SELECT &#039;&lt;?php system(&#039;параметр&#039;) ?&gt;&#039; INTO OUTFILE &#039;shell.php&#039;<br> Тут могут вытекать разные последствия https://visavi.net/topics/40297/659485 Советы по Mysql YouMobe Sun, 09 Mar 2014 11:57:17 +0400 Сообщения https://visavi.net/topics/40297/659485 B коде можете указать, как выглядет до и после? https://visavi.net/topics/40297/659465 Советы по Mysql Артур Sun, 09 Mar 2014 05:19:07 +0400 Сообщения https://visavi.net/topics/40297/659465 Изначально фильтрировать все входящие данные перед записью в бд, mysql_real_escape_string() и htmlspecialchars() будет достаточно) https://visavi.net/topics/40297/659464 Советы по Mysql Алексей Sun, 09 Mar 2014 04:10:17 +0400 Сообщения https://visavi.net/topics/40297/659464 Не раз встречал посты с ругательствами на SQL иньекции. Что это такое, как предотвратить это и напишите разные советы по обеспечению безопасности с Mysql. https://visavi.net/topics/40297/659461 Советы по Mysql ____________________ Sat, 08 Mar 2014 23:52:10 +0400 Сообщения https://visavi.net/topics/40297/659461