Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Простите за нубский вопрос про |

02.11.2006, 13:19
|
|
Участник форума
Регистрация: 02.04.2006
Сообщений: 273
Провел на форуме: 1269624
Репутация:
114
|
|
Простите за нубский вопрос про
Ещё раз прошу прощения за тупой вопрос, но незнаю как реализовать.
Нужно проверять введенные данные пользователя чтобы защетится от SQL-inj
Говорю сразу addslashes не предлогать.
Так-как по непняной пречине на MSSQL работает очень криво.
Подскажите способ как защетится но при учете того что пользователь должен использовать спец символы.
==================
Вобщнм принемаю любые варианты решения
PS: Язык php.
Ладно тогда предложите хороший метод защиты от SQL-inj
Последний раз редактировалось EST a1ien; 02.11.2006 в 17:45..
|
|
|

02.11.2006, 18:58
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Код:
$txt="Текст Текст Text Text";
$txt=str_replace(array('%','+'),array('\\x',' '),urlencode($txt));
echo $txt;
|
|
|

02.11.2006, 19:58
|
|
Участник форума
Регистрация: 02.04.2006
Сообщений: 273
Провел на форуме: 1269624
Репутация:
114
|
|
Не к сожалению не катит так-как к примеру есть пользователь >l<izn-
Он захочет посмотреть инфу о себе введет свой логин он обработается и вот что получится
select * from memb WHERE Name='\x3El\x3Cizn-';
И такой запрос вернёт не точто надо.
Но всёравно спс. за идею у кого ещё есть какиенибудь идеи
Последний раз редактировалось EST a1ien; 02.11.2006 в 20:00..
|
|
|

02.11.2006, 20:12
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Ну тогда кодируй всё в base64_encode
|
|
|

02.11.2006, 20:32
|
|
Участник форума
Регистрация: 02.04.2006
Сообщений: 273
Провел на форуме: 1269624
Репутация:
114
|
|
Ну закодирую и что дальше делать с закодированой строкой?
Последний раз редактировалось EST a1ien; 02.11.2006 в 20:34..
|
|
|

02.11.2006, 21:08
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Сообщение от EST a1ien
Ну закодирую и что дальше делать с закодированой строкой?
Ну а потом раскодируешь.
А ещё строки в SQL можно в HEX кодировать, тапа того
Код:
select * from memb WHERE Name=0x3E6C3C697A6E2D;
Код:
$txt=">l<izn-";
$ret='0x';
$hex='0123456789ABCDEF';
for($x=0;$x<strlen($txt);$x++){
$ret.=$hex{ord($txt{$x})>>4}.$hex{ord($txt{$x})&15};
}
echo $ret;
|
|
|

02.11.2006, 22:28
|
|
Пачка маргарина
Регистрация: 14.07.2005
Сообщений: 964
Провел на форуме: 4646474
Репутация:
1424
|
|
я не понял - экранировать спецсимволы нельзя? или именно addslashes нельзя?
|
|
|

02.11.2006, 23:21
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
Перед сохранением данных в базе кодируй их например при помощи urlencode() ! тоесть пользователя >l<izn- сохраняй в базе как %3El%3Cizn- ивсе!!!
а при выводе данных обратно раскодируй их! надеюсь понял идею...
|
|
|

02.11.2006, 23:53
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
Определить спецсимволы и заэкранировать слешами.
|
|
|

03.11.2006, 21:48
|
|
Участник форума
Регистрация: 02.04.2006
Сообщений: 273
Провел на форуме: 1269624
Репутация:
114
|
|
я не понял - экранировать спецсимволы нельзя? или именно addslashes нельзя?
Нет просто MSSQL както криво работает спри этом тоесть вот такой запрос вызывает ошибку в MSSQL
select * from memb WHERE Name='test\'';
Server: Msg 105, Level 15, State 1, Line 1
Unclosed quotation mark before the character string 'test\';
'.
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near 'test\';
'.
Перед сохранением данных в базе кодируй их например при помощи urlencode() ! тоесть пользователя >l<izn- сохраняй в базе как %3El%3Cizn- ивсе!!!
а при выводе данных обратно раскодируй их! надеюсь понял идею...
Понял но некатит так-как это база одной онлайн игры и я немогу редактировать то как данные хранятся в базе потомучто допустим пользователь зарегался с ником >l<izn- в базе он сохранился как %3El%3Cizn- и поэтому пользователю предётся вводить %3El%3Cizn- чтобы войти в игру.
Ладно тогда так каие символы надо фильтровать для защиты понятно что " ' + какие ещё?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|