HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 24.04.2010, 12:59
j0ker13
Участник форума
Регистрация: 28.07.2008
Сообщений: 199
Провел на форуме:
861008

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

PHP код:
function filtr($data)
{
    
$filter = array("select""delete""union""update""insert","\\""'"","";""--""-""%20""%27"" ""`""=""%");
    
$filter_data str_replace($filter""strtolower($data));
    return 
$filter_data;
}  

 function 
sql($query ""$param = array())
{
    if (!
is_array($param) || count($param) == 0)
    {
        return 
mysql_query(filtr($query));
    }
    else
    {
        foreach (
$param as $key => $val)
        {
            
$query str_replace("{".$key."}"$val$query);
        }
        return 
mysql_query(filtr($query));
    }

tak?
 
Ответить с цитированием

  #2  
Старый 24.04.2010, 13:19
wildshaman
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме:
12942062

Репутация: 1550


По умолчанию

Такое обходится элементарно
selselectect
/*
()
 
Ответить с цитированием

  #3  
Старый 24.04.2010, 14:53
phpdreamer
Постоянный
Регистрация: 26.07.2009
Сообщений: 321
Провел на форуме:
444589

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

ну а также UnIoN , upDate и т.п.
нольбайт тож пройдет...

короче, mysql_real_escape_string() в помощь...
только логику скрипта придется переделывать
 
Ответить с цитированием

  #4  
Старый 24.04.2010, 15:04
wildshaman
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме:
12942062

Репутация: 1550


По умолчанию

Цитата:
Сообщение от phpdreamer  
ну а также UnIoN , upDate и т.п.
нольбайт тож пройдет...
Смена регистра не пройдет, в коде strtolower
 
Ответить с цитированием

  #5  
Старый 24.04.2010, 15:13
phpdreamer
Постоянный
Регистрация: 26.07.2009
Сообщений: 321
Провел на форуме:
444589

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

Цитата:
Сообщение от wildshaman  
Смена регистра не пройдет, в коде strtolower
упс, не заметил

тогда пройдет uni/**/on
 
Ответить с цитированием

  #6  
Старый 24.04.2010, 14:58
Redwood
Участник форума
Регистрация: 10.09.2009
Сообщений: 120
Провел на форуме:
2212846

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

AtomoS, защита от sql inj легко обходиться в твоем случае, зачем изобретать велосипед, для этого есть соотвествующие функции.
Числовые поля int или intval, текстовые mysql_real_escape_string(), при выводе всех значений на экран обрамлять в htmlspecialchars, вот и все и ненужно, никаких str_replace

Последний раз редактировалось Redwood; 24.04.2010 в 15:13..
 
Ответить с цитированием

  #7  
Старый 24.04.2010, 15:01
Gin
Участник форума
Регистрация: 11.09.2008
Сообщений: 107
Провел на форуме:
262809

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

2Deathdreams and 2All
Объявил как global так и не решило задачу. Проглядел все твои месаги так и не нашел класса для верификации мыл. Код я набросал за 15 мин, мог бы сделать и ООП, но для тмоей задачи это из пушки по воробъям, если криво-та еще где-то укажи, сам не люблю гавно код. Проблема все таже не отправляеться пост запрос, не получаю куки.
 
Ответить с цитированием

  #8  
Старый 24.04.2010, 16:28
Radical Edward
Новичок
Регистрация: 24.01.2010
Сообщений: 21
Провел на форуме:
36432

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

Здравствуйте, наверняка этот вопрос уже задавался, однако, после двух часов поиска, мои успехи ни чуть не изменились.
Заранее скажу, что есть два скрипта : "ВВод" и "Вывод"

Проблемма стара как мир : вставить в MySQL базу кириллические символы.
Суть в том, что я хочу вставить непосредственно со скрипта ВВОДА( написанном на php).

Например, у меня есть "<input type='text'...>", откуда я хочу вытянуть строку и закинуть ее в таблицу.

Кодировка таблицы : utf8_general_ci (пробовал и cp1251)
Кодировка поля в таблице - такая же (Пробовал и cp1251)
mysql_query('SET NAMES cp1251');(или utf8) - поставил сразу после подключения.

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

Если вставлять через скрипт ввода, вытягивая строку из текстбокса, то админ отображает нечто такое : "&sup3;&sup3;&sup3;&sup3;", а скрипт вывода : "ûâàûâàûâ".


ЧТО Я ДЕЛАЮ НЕ ТАК, на что обратить внимание и вообще...как справиться с проблеммой.

___
version mysql 5,php 5
__
в му.ini везде кодировка стоит cp1251

Последний раз редактировалось Radical Edward; 24.04.2010 в 16:34..
 
Ответить с цитированием

  #9  
Старый 24.04.2010, 16:38
Failure
Участник форума
Регистрация: 21.09.2008
Сообщений: 148
Провел на форуме:
678893

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

PHP код:
<?php
header
("Content-Type: text/html; charset=utf8");
//....коннект к бд
mysql_query("SET NAMES utf8");
?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST">
<input type=text name="str" value="" ><input type=submit value="В бд">
</form>
<?php
if(!empty($_POST['str']) && !is_array($_POST['str'])) {
  
$result mysql_query("INSERT INTO `table`(str) VALUES('".mysql_real_escape_string($_POST['str'])."')");
  if(
$result == 1) echo "Успешно запостилось";
}
?>
не?
 
Ответить с цитированием

  #10  
Старый 24.04.2010, 16:40
phpdreamer
Постоянный
Регистрация: 26.07.2009
Сообщений: 321
Провел на форуме:
444589

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

снестите таблицу, создайте ее заново из бэкапа (пустую, с указаной кодировкой utf-8_general_ci).
а дальше следуйте инструкциям:
Цитата:
1)В файле .htaccess должна быть строка
AddDefaultCharset UTF-8
2)В верху php скрипта
header('Content-Type: text/html; charset=utf-8');
3)В редакторе (среде разработки) не забудьте переключить на UTF-8
4)Сразу после подключения к mysql выполняйте запрос
SET NAMES 'utf8'
источник
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



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


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




ANTICHAT ™ © 2001- Antichat Kft.