powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Спец символы в VarChar2 (Oracle8)
22 сообщений из 22, страница 1 из 1
Спец символы в VarChar2 (Oracle8)
    #32115410
Seven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.
есть вопрос: какие символы в Oracle8 в типе VarChar2 есть специальнныим в SQL.
что и как стоит квотить при написании SQL.
Всем спасибо.
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116074
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нифига не понял, но, наверное, кавычку можно упомянуть. Ескейпится она кавычкой же.
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116299
Seven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за попытку ответа :-)

Попробую рассказать проблему с другой стороны.

через cgi-скрипт в базу данных пишетня информация про человека(мило, ФИО, адрес ...).
Большинство полей типа VarChar2.
вот и интересуюсь на что можна напоротся при таком случае.
если строки полученные от пользователя никак не проверять, то можно получить не только кавычку , но и чтото типа доступа к переменным Oracle-а...
что кроме кавычки надо отлавливати в этих строках и на что заменять.

(предупреждаю: я в оракле не спец.) :-)
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116308
[IPT]-Said
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажется, вы раздуваете из мухи слона :)
Приведите пример подобного "хакерства"?
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116381
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут всё зависит от того, как полученные из формы значения обрабатываются. А то, на самом деле, можно там написать drop table ... и, если не хватило того, чего должно было хватить для организации минимальной безопасности, в некоторых случаях может прокатить :)
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116415
Seven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я хотел скзать, что без проверок у меня могут возникнуть проблемы при регестрации народа.
тоесть тыпа того, что поставив ":" можна сослатся на несуществующую переменную. и тем вызвать проблему регистрации данного человека (которому действительно захотелось поставить в данных про себя пару особенных сиволов.)
иными словами это получится не хакерство а проблема регистрации (регистрация на пройдёт).

если я неправ прошу исправить и указать куда копать.
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116422
ora600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрите функцию translate
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116426
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, по-хорошему, надо ввод проверять на правильность. Уж не знаю, на чём там твой cgi писан.
А inset into table1 (id, title) values (seq1.nextval,':1 Pupkind') проблемы не вызовет.
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116446
Seven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоесть если я правильно понимаю то в кавычках катят любые символы кроме самой кавычки. никаких переменных итд боятся нечего.

и никаких проблем с самим Oracle-ом быть надолжно.....
тоесть смотреть надо на на остальные преобразования (ввод данных пользоватилем и вывод ему их обратно.)

я ничего не перепутал?
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116448
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В кавычках вставляются строковые значения, без кавычек - цифири.
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116470
Seven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что цифры без кавычек это понятно.
яж то огогвариваю что пишу в VarChar2 (тоесть в кавычках.)
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116522
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да. Обрабатывать, в твоём случае, нужно только кавычку.
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32116527
Seven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну коль так, тогда большое всем Спасибо.
и тему можна считать закрытой.
Удачи ВАМ!
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32122026
Seven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
(с) Вот так всегда, на самом интересном месте....

ВЫ уж извиньте, но тему приходится поднимать заново.

я пытаюсь виполнить :
Код: plaintext
1.
2.
insert into instruments values(  329 , 'JKHY', 'JKH & ASSOCIATES,'	,  2 ,  0 , '',  0 ,  0 ,  100 ,  1 ,  1 , 'JKHY', '',  1 ,  1 ,  0 ,  6 ,  100 ,  8 ,  0 ,  0 ,  0 ,  0 ,  0 ,  1 ,  4 ,  329 , '0');
insert into providers values(  983 ,  0 ,  329 , '4a4b4859',  10 ,  0 ,  983 , '0');


и получаю следующие ошибки:

Код: plaintext
1.
2.
3.
4.
5.
6.
Enter value for associates: old    1 : insert into instruments values(  329 , 'JKHY', 'JKHY & ASSOCIATES,'	,  2 ,  0 , '',  0 ,  0 ,  100 ,  1 ,  1 , 'JKHY', '',  1 ,  1 ,  0 ,  6 ,  100 ,  8 ,  0 ,  0 ,  0 ,  0 ,  0 ,  1 ,  4 ,  329 , '0')
new    1 : insert into instruments values(  329 , 'JKHY', 'JKHY insert into providers values( 983, 0, 329, '4a4b4859', 10, 0, 983, '0');,'	,  2 ,  0 , '',  0 ,  0 ,  100 ,  1 ,  1 , 'JKHY', '',  1 ,  1 ,  0 ,  6 ,  100 ,  8 ,  0 ,  0 ,  0 ,  0 ,  0 ,  1 ,  4 ,  329 , '0')
insert into instruments values(  329 , 'JKHY', 'JKHY insert into providers values( 983, 0, 329, '4a4b4859', 10, 0, 983, '0');,'	,  2 ,  0 , '',  0 ,  0 ,  100 ,  1 ,  1 , 'JKHY', '',  1 ,  1 ,  0 ,  6 ,  100 ,  8 ,  0 ,  0 ,  0 ,  0 ,  0 ,  1 ,  4 ,  329 , '0')
                                                                                                     *
ERROR at line  1 :
ORA- 00917 : missing comma


Тоесть мне почемуто мешают "&" и ","
и это несмотря на то что они заключены в одинарные кавычки.

просветите где @ порылась :-).
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32122035
Seven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя, я немного поколупался и вижу что в дело не в запятых а именно в "&".
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32122037
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хочешь вставить значение поля с символом &, сперва скажи в sqlplus:

SET DEFINE OFF

или переопредели на другой символ:

http://technet.oracle.com/docs/products/oracle9i/doc_library/release2/server.920/a90842/ch13.htm#1012408
http://www.geocities.com/luzanovp/sp_vars.html#User_Vars_Subst_Set
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32122042
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это только в sqlplus. Запятая ни при чём.
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32122043
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, еще лучше:

SET SCAN OFF
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32122065
Seven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоесть пишем в SQL*Plus
SET DEFINE OFF
и забываем про &,
а при програмной отправке запроса следим за одинарной кавычкой.
Надеюсь я Вас правильно понял :-)
Спасибо.
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32122427
ShgGena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dlya opredeleniya taktiki obrabotki simvolov napodobie ' ili & nado tocno ponimat sleduyuschee:

1) -- na chem pisn cgi
2) -- v cgi skripte generiruetsya polniy tekst insert
ili
-- v cgi skripte ispolzuyutsya templaty insert s podstanovkoy bind peremennyh
3) sgenerirovanniy tekst otpravlyaetsya na server kak odinochniy statment
ili kak posledovatelnost statmentov

poskolku pri ispolzovanii bind peremennyh s templatami voobsche ne nugno nichego eskeypit
a pri posilke na server posledovatelnost statmentov nugno sozdavat mehanizmy
opespecheniya polnogo analiza na bezopasnost scripta.

a to ved v etom sluchae ochen legko otpravit chto-to vrode:

text = "abc','bcd'); drop table xxx; insert into vvv(a,b) values('aaa','bbb'" ... itd

t.e pri generacii insert budet primerno sleduyuschee:

stmt = "insert into vvv(a,b) values(" + text + ");" ;

a v rezultate poluchim:

stmt = "insert into vvv(a,b) values(abc','bcd'); drop table xxx; insert into vvv(a,b) values('aaa','bbb');"

i eto vopolnitsya kak 3 posledovatelnyh sql statments, kotorie s udovolstviem ubyut tablicu xxx

po povodu privilegiy na drop prosba ne bespokoitsya. V tekst nugniy grant vstavlyaetsya ochen legko!
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32122447
Seven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже, Большое Спасибо за лекцию.
Будет принято и обдумано.
...
Рейтинг: 0 / 0
Спец символы в VarChar2 (Oracle8)
    #32122449
Chira
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
переменные в SQL нужно передавать через параметры и потом bind-ить параметры со значениями.
об этом упоминал ShgGena
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Спец символы в VarChar2 (Oracle8)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]