ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

php - проблема с кавычкой...
  #1  
Старый 11.05.2009, 11:54
Аватар для ANONIM123
ANONIM123
Познающий
Регистрация: 14.01.2008
Сообщений: 38
Провел на форуме:
31731

Репутация: -11
По умолчанию php - проблема с кавычкой...

Вобщем в базе есть запись с:
login='Мой логин'', pas=хеш паса

при прямом запросе из phpmyadmin'a:
SELECT * FROM users WHERE login='Мой логин'' AND pas_hesh='хеш паса...' всё выводиться нормально, а при выводе из php скрипта не выводиться...
PHP код:
$query="SELECT * FROM users WHERE login='Мой логин'' AND pas_hesh='хеш паса...'";
echo 
$query;
$sql mysql_query($query$sqlid);
 while (
$tablerows mysql_fetch_row($sql)){
   echo 
"Есть резуьтат!";

Почему не выодиться из пхп скрипта?


Добавлено через 5 минут:
Аа, в html исходнике запрос выглядит вот так:
Мой логин'

Зачем нужен "&amp", и почему он добавился?

Да, значение бирётся из кука:
%CC%EE%E9+%F2%E5%F5%ED%E8%F7%E5%F1%EA%E8%E9+%ED%E8 %EA%26%23039%3B
тут в глаза бросаются циферки 23039...

а если юзер вставит в текст #039 и с этим пройдёт запрос то ведь никакой уязвимости нет, этот символ, и другие с # интерпретируется только как текст? Зачем тогда функция защиты ставит &amp который интерпретируется браузером как & ?

А ещё когда то было описание sql уязвимости из за проблем с кодировкой, кажеться на разоре... У ково есть ссыль выложите плиз

если перез запрсоом символ &amp просто удалить с помощю регулярки то всё номрально, и безопасно?

Последний раз редактировалось Sharky; 11.05.2009 в 14:25.. Причина: сказал же нормально оформить
 
Ответить с цитированием

  #2  
Старый 11.05.2009, 11:58
Аватар для ANONIM123
ANONIM123
Познающий
Регистрация: 14.01.2008
Сообщений: 38
Провел на форуме:
31731

Репутация: -11
По умолчанию

Опана... Символ RE login='Мой логин'' ... Движок форума отобразил как ковычку!
 
Ответить с цитированием

  #3  
Старый 11.05.2009, 12:31
Аватар для Sharky
Sharky
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме:
3424739

Репутация: 921


Отправить сообщение для Sharky с помощью ICQ
По умолчанию

оформи код как положено [php][*/php]
 
Ответить с цитированием

  #4  
Старый 11.05.2009, 13:43
Аватар для Krist_ALL
Krist_ALL
Banned
Регистрация: 14.01.2009
Сообщений: 515
Провел на форуме:
1996429

Репутация: 468


Отправить сообщение для Krist_ALL с помощью ICQ
По умолчанию

Замени $sql = mysql_query($query, $sqlid); на $sql = mysql_query($query, $sqlid) or die(mysql_error()); и увидишь , почему запрос не выполнился.
 
Ответить с цитированием

  #5  
Старый 11.05.2009, 13:59
Аватар для NuR
NuR
Участник форума
Регистрация: 11.12.2005
Сообщений: 160
Провел на форуме:
745130

Репутация: 159
Отправить сообщение для NuR с помощью ICQ
По умолчанию

$query="SELECT * FROM users WHERE login='Мой логин\'' AND pas_hesh='хеш паса...'";

вобщем разберись с кавычками
 
Ответить с цитированием

  #6  
Старый 11.05.2009, 20:06
Аватар для ANONIM123
ANONIM123
Познающий
Регистрация: 14.01.2008
Сообщений: 38
Провел на форуме:
31731

Репутация: -11
По умолчанию

Нет нет ребята... вы немного не так поняли...
Цитата:
Опана... Символ RE login='Мой логин'' ... Движок форума отобразил как ковычку!
Т.е запрос верный... а ковычка отобразилась здесь из за того что движок ЭТОГО форума интерпритировал этот спецсимвол... Запрос выполняется без ошибок!
Но через phpmyadmin резуьтат возвращается, а через пхп скрипт - нет!

Кажись уже понял)) Дело в том что скрипт сделал запрос с этим: &amp, а в пхп май админе этого небыло... Всё, с этим разобрался, работает!

Но теперь вопрос в том почему функция безопасности вставила этот символ: &amp
и безопасно ли его убрать?
А, помоему &amp добавляется перед функцией для указания того, что спецсимвол отображать не нужно...

Последний раз редактировалось ANONIM123; 11.05.2009 в 20:18..
 
Ответить с цитированием

  #7  
Старый 11.05.2009, 22:56
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

нельзя сперва ставить одинарную ковычку а потом двойную: 'abc"
и аналогично: "abc'
надо однаково: 'abc' или "abc"
вот и твоя ошибка!
 
Ответить с цитированием

  #8  
Старый 11.05.2009, 22:58
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

Цитата:
Вобщем в базе есть запись с:
login='Мой логин', pas=хеш паса

при прямом запросе из phpmyadmin'a:
SELECT * FROM users WHERE login='Мой логин' AND pas_hesh='хеш паса...' всё выводиться нормально, а при выводе из php скрипта не выводиться...

$query="SELECT * FROM users WHERE login='Мой логин' AND pas_hesh='хеш паса...'";
echo $query;
$sql = mysql_query($query, $sqlid);
while ($tablerows = mysql_fetch_row($sql)){
echo "Есть резуьтат!";
}
^^
 
Ответить с цитированием

  #9  
Старый 11.05.2009, 22:59
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

и почитай про:
htmlspecialchars
magic_quotes
 
Ответить с цитированием

  #10  
Старый 13.05.2009, 12:38
Аватар для ANONIM123
ANONIM123
Познающий
Регистрация: 14.01.2008
Сообщений: 38
Провел на форуме:
31731

Репутация: -11
По умолчанию

танкисты блин))

Цитата:
нельзя сперва ставить одинарную ковычку а потом двойную: 'abc"
и аналогично: "abc'
надо однаково: 'abc' или "abc"
вот и твоя ошибка!
Ну это же и обезьяне понятно, ещё раз повторюсь здесь проблема была в следующем:

' = "& # 039 ;" тока без пробелов, т.е этот движок, двиг античата отобразил спецсимвол не в виде его кода, а в виде орегинального символа, попробуйте написать сами:
Цитата:
"& # 039 ;" тока без пробелов
и увидите кавычку, также можно юзать другие символы, но < > не прокатывает. я даже написал скриптик:
PHP код:
<?

for($x=0$x<99$x++) {
echo 
"&amp&#0$x; - $x<br>";
}

?>
чтобы узнать коды всех символов..,)

Сейчас решил с помощю str_replase удалять эту фигню: "&amp"... И нормауль, рабоает =)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Books PSalm69 Избранное 248 27.10.2009 04:52
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ