Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.02.2011, 00:35
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

слегка хакерский вопрос
Допустим на сайте я использую кодировку виндовс 1251.
соответственно в полях типа инпут текстэрия будет использоваться эта кодировка..
ну и непосредственно сам вопрос-есть ли возможность подменить кодировку во время(до) после передачи данных на сервер на сайте-тоесть страница использует 1251 а передать в утф 8?
вариант изменения исходного кода страницы на клиенте вручную а потом посылки запроса из изменённой(как раньше проходило в контакте тож рассматриваю.и интересно какие есть варианты защиты от этого
понимаю что это прозвучит вообще тупо-теоретически можно ли задать части символов строки передаваемой любым из методов post \get свою кодировку? да и без передачи возможно ли это для части строки?интересует клиентская сторона.
слепить строку из двух строк в разных с разными кодировками возможно?

Последний раз редактировалось dmitriymar, 14.02.2011 в 01:01.
Ответить с цитированием
  #2 (permalink)  
Старый 14.02.2011, 00:59
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

зачем?
какова конечная цель, чтобы мог понадобится такой хак?
Ответить с цитированием
  #3 (permalink)  
Старый 14.02.2011, 01:03
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

цель проста. если это невозможно в принципе то возможно сделать защиту от инъекций абсолютно другого уровня чем те что сейчас используются и широко известны.какой всёравно есть sql инекции (вне зависимостиот их рода)в передаваемых данных.

Последний раз редактировалось dmitriymar, 14.02.2011 в 01:11.
Ответить с цитированием
  #4 (permalink)  
Старый 14.02.2011, 01:22
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

хм.
и как же вы собираетесь защищаться, на основании этого факта?
Если со страницы могут прийти данные только в CPxxxx (в которой находится страница), то что пользователь, что скрипт будет с нее отправлять данные именно в этой кодировке.
а если вы про то, в какой кодировке будет скрипт сположен через уязвимость в сайт, то это также без разницы.
латницы, цифр, и узкого набора спецсиволов вполне достаточно, чтобы сгенерить любой код, в любой кодировке.

PS исходный вопрос мне кажется возможным.
То есть, можно отправить данные в проивзольной кодировке
но проводить полномасштабное исследование по этому поводу мне немного лень.
Ответить с цитированием
  #5 (permalink)  
Старый 14.02.2011, 01:29
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Gvozd,
тоже ничего не нашел по этому поводу.но нашел только что всё в юникоде отправляется.по ходу в любом случае при отправке всё перекодируется в юникод.момент не в найти уязвимости сайта а в защите баз от инъекций
как? скажу. сейчас защита от иньекций базируеться на проверке типа данных да экранировании кавычек в основном.
но чтобы инъекция не сработала-достаточно в полученных данных заменить все пробелы и кавычки-на какие нибудь ничего не значащие последовательности символов. соответственно-эти данные будут без вопросов заноситься в базу(если типы для данных в таблице будут выставлены соответствующие). ну а при выборке их из базы их соответственно менять на те что были до замены и передавать на клиент.
да таблицы при этом получаются более громоздкие-но и полностью защищённые
ну а если склепать строку нельзя из строк с разными кодировками-то проверить кодировку строки на предмет попыток завязать лишнее труда не составит-да и смысла нет никакого в этом если есть юникод.

Последний раз редактировалось dmitriymar, 14.02.2011 в 01:48.
Ответить с цитированием
  #6 (permalink)  
Старый 14.02.2011, 01:40
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

А зачем таки эти надмозги? Экранирование ещё никого не подводило.
Ответить с цитированием
  #7 (permalink)  
Старый 14.02.2011, 01:45
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Aetae,
не спорю. но тем не менее-средняя защита это порядка 10-15 строк.
эта занимает-4 при при записи и 4 при извлечении из бд.
да и те кто пропагандирует экранирование+доп защиту-всёравно делают упор на то что универсальной защиты нет.
в этой я пока минусов не вижу кроме размера б.д
Ответить с цитированием
  #8 (permalink)  
Старый 14.02.2011, 01:47
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от dmitriymar
но чтобы инъекция не сработала-достаточно в полученных данных заменить все пробелы и кавычки-на какие нибудь ничего не значащие последовательности символов. соответственно-эти данные будут без вопросов заноситься в базу(если типы для данных в таблице будут выставлены соответствующие). ну а при выборке их из базы их соответственно менять на те что были до замены и передавать на клиент.
да таблицы при этом получаются более громоздкие-но и полностью защищённые
фигня какая-то.
где вы собираетесь заменять кавычки и пробелы на "особые символы"?
на клиенте? легко подделать.
на сервере? чем это отличается от обычного экранирования кавычек?
*Пожалуйста очень хочу увидеть ответы на эти вопросы, для лучшего понимания вашей мысли

В поддержание этой не сильно нормальной идеи:
вы спокойно можете перекодировать вашу строку в любой кодировке в base64, к примеру. в нем не бывает кавычек и прочего.
Но, и это ничем по сути не отличается от обычной защиты
вы вызываете функцию, которая приводит данные к нужному безопасному типу
Ответить с цитированием
  #9 (permalink)  
Старый 14.02.2011, 01:58
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Gvozd
где вы собираетесь заменять кавычки и пробелы на "особые символы"?
на клиенте? легко подделать.
на сервере
Сообщение от Gvozd
вы спокойно можете перекодировать вашу строку в любой кодировке в base64, к примеру. в нем не бывает кавычек и прочего.
в принципе да,но здесь вопрос что больше сервер загрузит перекодировка в base64 или подобная замена?
Сообщение от Gvozd
на сервере? чем это отличается от обычного экранирования кавычек?
а если в передаваемой информации есть и кавычки и слова такиеже как опраторы mysql и последовательность кавычек важна также как и их количество ?
экранирование кавычек применяется совместно с другими методами.
одно экранирование не спасает от инъекций
для чего?чем больше вариантов защит в природе тем меньше вероятность что сломают.
аналогия -все замки выполняют одну и туже функцию. но подо все замки разные ключи и различные варианты замков есть-а не один вид

да и экранирование в моём случае только во вред

\вы вызываете функцию, которая приводит данные к нужному безопасному типу\ согласен полностью-но в тех вариантах защит что встречал,использование их грозило потерей части данных
изза чего это-задача информация должна быть удобочитаема как с базы так и с панели управления

ну а так (как я вижу) вероятность взлома инъекциями минимальная-точнее полное отсутствие таковой. сохраняется последовательность кавычек и их количество. в отличие от кодирования в base64 информация из в базе остаётся удобночитаемая
создал тему -интересовало можно ли принудительно заставить видеть часть строки в одной кодировке часть в другой

Последний раз редактировалось dmitriymar, 14.02.2011 в 02:19.
Ответить с цитированием
  #10 (permalink)  
Старый 14.02.2011, 02:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Сам факт того что при выводе надо делать доп. преобразования сразу отправляет идею в утиль.(не говоря об общей бредовости концепции)
Ибо данные в вебе в основном добавляются один раз, а читается миллионы.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по учебнику Invis1ble Сайт Javascript.ru 12 21.03.2011 20:06
Вопрос по работе функций в PHP bayah Серверные языки и технологии 2 12.02.2011 17:42
Теоретический вопрос. gods33 (X)HTML/CSS 10 16.12.2010 23:49
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50
мааленький вопрос по Regexp:) mirniy Общие вопросы Javascript 1 22.01.2009 20:47