Ещё раз прошу прощения за тупой вопрос, но незнаю как реализовать.
Нужно проверять введенные данные пользователя чтобы защетится от SQL-inj
Говорю сразу addslashes не предлогать.
Так-как по непняной пречине на MSSQL работает очень криво.
Подскажите способ как защетится но при учете того что пользователь должен использовать спец символы.
==================
Вобщнм принемаю любые варианты решения
PS: Язык php.
Ладно тогда предложите хороший метод защиты от SQL-inj
Не к сожалению не катит так-как к примеру есть пользователь >l<izn-
Он захочет посмотреть инфу о себе введет свой логин он обработается и вот что получится
Цитата:
select * from memb WHERE Name='\x3El\x3Cizn-';
И такой запрос вернёт не точто надо.
Но всёравно спс. за идею у кого ещё есть какиенибудь идеи
Последний раз редактировалось EST a1ien; 02.11.2006 в 20:00..
Перед сохранением данных в базе кодируй их например при помощи urlencode() ! тоесть пользователя >l<izn- сохраняй в базе как %3El%3Cizn- ивсе!!!
а при выводе данных обратно раскодируй их! надеюсь понял идею...
я не понял - экранировать спецсимволы нельзя? или именно 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- чтобы войти в игру.
Ладно тогда так каие символы надо фильтровать для защиты понятно что " ' + какие ещё?