Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   слегка хакерский вопрос (https://javascript.ru/forum/misc/15116-slegka-khakerskijj-vopros.html)

dmitriymar 14.02.2011 02:23

Цитата:

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

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

Gvozd 14.02.2011 02:52

Цитата:

Сообщение от dmitriymar
а ты на клиенте будто бы видишь в каком виде данные храняться в базе на сервере?ты видишь лишь то что сгенерированно средствами рнр(если он используеться). и глядя на информацию у себя на мониторе ты будешь видеть данные в нормальном виде.

да, пользователь увидит нормальные данные.
но на это будет потрачено дополнительное время сервером(на перевод между форматами).
Это означает:
1) больше время загрузки страницы у пользователя. или вам пофиг на конечного пользователя?
2) больше процессорных ресурсов на расшифровку. Или вы платите за хостинг не из своего кармана?
Если оба момента не важны для вашего конкретного проекта, то это не значит, что так стоит делать всегда.
Цитата:

Сообщение от dmitriymar
один раз-смотря на каких сайтах.

Обычно данные помешенные в БД, просматриваются после этого не менее одного раза.
А в большинстве случаев, и во-много раз больше.
Как итог, в первую очередь надо оптимизировать вывод записи, а не ее занесение.

x-yuri 14.02.2011 04:55

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

для чисел: filter_var($id, FILTER_SANITIZE_NUMBER_INT), для строк: mysql_real_escape_string. При такой защите есть потеря данных?

monolithed 14.02.2011 08:44

Цитата:

Сообщение от x-yuri
надо для начала увидеть строку, которую не сможет защитить mysql_real_escape_string

это точно :yes:

e1f 14.02.2011 14:18

Внимание, вопрос: "А зачем"? Бинды отменили, чтоли?

Gvozd 14.02.2011 15:03

e1f,
а можете дать более подробную ссылку по информации?
Интересует именно в контексте MySQL, либо чистого SQL

x-yuri 14.02.2011 15:17

а чем бинды отличаются от экранирования в данном контексте?

e1f 14.02.2011 15:44

Цитата:

Сообщение от Gvozd (Сообщение 92447)
e1f,
а можете дать более подробную ссылку по информации?
Интересует именно в контексте MySQL, либо чистого SQL

http://www.google.com.ua/search?q=php+mysqli+bind_param

Цитата:

Сообщение от x-yuri (Сообщение 92449)
а чем бинды отличаются от экранирования в данном контексте?

Экранирование -- это "давайте будем сами делать то, что уже реализовано в db-интерфейсах. мы же умные, черт побери".

dmitriymar 14.02.2011 18:54

Цитата:

Сообщение от Gvozd
Обычно данные помешенные в БД, просматриваются после этого не менее одного раза.

дело в том что информация во многих полях будет меняться чуть ли не ежедневно
Цитата:

Сообщение от x-yuri
минутку, надо для начала увидеть строку, которую не сможет защитить mysql_real_escape_string (или о какой функции мы говорим?). Без этого не имеет смысла продолжать

для чисел: filter_var($id, FILTER_SANITIZE_NUMBER_INT), для строк: mysql_real_escape_string. При такой защите есть потеря данных?

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

dmitriymar 14.02.2011 20:04

Цитата:

Сообщение от x-yuri
минутку, надо для начала увидеть строку, которую не сможет защитить mysql_real_escape_string (или о какой функции мы говорим?). Без этого не имеет смысла продолжать

по моему у него в видеокурсе я встречал пример где одно экранирование не спасало-точнее в том запросе оно было как мёртвому припарка. было нечего экранировать.
jolly-wind.ru


Часовой пояс GMT +3, время: 12:24.