PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 6
mario Отправлено: 28 Сентября, 2007 - 12:04:32 • Тема: А как вы думаете? • Форум: Новости веб-технологий

Ответов: 13
Просмотров: 169
У меня Аутпост и АвастНиндзя
mario Отправлено: 27 Сентября, 2007 - 10:31:31 • Тема: Приемы безопасного программирования на PHP • Форум: Обсуждение статей

Ответов: 19
Просмотров: 17896
Я тебя понял, но как это относится к авторизации?

Я и не предлогаю тебе в этом запросе использовать функцию, только по тому, что код будет более громоздким, да это и лишне...

Могу наверно лишь посоветовать "mysql_free_result" если запрос возвращает большое количество данных Подмигивание
mario Отправлено: 27 Сентября, 2007 - 09:50:21 • Тема: Приемы безопасного программирования на PHP • Форум: Обсуждение статей

Ответов: 19
Просмотров: 17896
2 valenok

Смысл тот же что и в твоём примере
CODE (php):
скопировать код в буфер обмена
  1.  
  2. $login = mysql_escape_string($_POST['login']);
  3. $pass = mysql_escape_string($_POST['pass']);
  4.  


CODE (php):
скопировать код в буфер обмена
  1.  
  2.   function escape($text){  
  3.        return  mysql_real_escape_string($text);  
  4.   }
  5. $login = escape($_POST['login']);
  6. $pass = escape($_POST['pass']);
  7.  


2 EuGen Ниндзя

CODE (php):
скопировать код в буфер обмена
  1.  
  2. $sql="SELECT * FROM users WHERE user_id IN (SELECT user_id FROM $rights_table) AND reg_date BETWEEN '$start_date' AND '$end_date' OR status=$status";
  3.  

Просто я не понимаю пока следующего:
reg_date BETWEEN '$start_date' AND '$end_date'
какую цель ты преследуеш этим, т.е. что тебе даёт "reg_date" между стартом и канцом?
Наверно для того чтобы считать это запросом авторизации
нужно знать $start_date и $end_date
И ещё вопрос почему в конце OR ? Если я правильно понял, ты хочеш получить ВСЕ ид юзеров, в которых указана reg_date или $status

Да и на втой вопрос про функции! Для канкретно этого запроса я не думаю что нужна какая либо функция
mario Отправлено: 26 Сентября, 2007 - 08:53:02 • Тема: Приемы безопасного программирования на PHP • Форум: Обсуждение статей

Ответов: 19
Просмотров: 17896
Радость Мужики, я рад что, вы подключились в эту тему!!!

CODE (php):
скопировать код в буфер обмена
  1.  
  2. $login = $_POST['login'];  
  3.  $pass = $_POST['pass'];  
  4.  $q = "SELECT `id` FROM `usres` WHERE `login`='".mysql_escape_string($login)."' AND `pass`='".mysql_escape_string($pass)."'";
  5.  


может лучше функцию написать и вызывать её в нужные нам номенты, когда нужно именно запрос в БД сделатьПодмигивание
функцию по ескейпу приводил выше^^(у меня она в классе БД)

Код php:
CODE (php):
скопировать код в буфер обмена
  1.  
  2. function auth($login, $passw){
  3.      global $sql;
  4.      $login= $sql->escape($login);
  5.      $passw= $sql->escape($passw);
  6. $user_login = mysql_query
  7.             ("SELECT * FROM `users` WHERE `user_name` ='$login' LIMIT 1");
  8.             if(mysql_num_rows($user_login) == 1){
  9. //если такой логин есть,
  10. //проверяем пароль
  11.             $user_passw = mysql_query ("SELECT '$login' FROM `users` WHERE
  12.                  `user_passw`='$passw' LIMIT 1");      
  13.              if(mysql_num_rows($user_passw) == 1){
  14.                         return TRUE;
  15.              }else{
  16.                         echo "<center>ошибка: <b>пароль не верный!</b></center>";
  17.                         return FALSE;
  18.                      }
  19. //Если же такого логина нет,
  20. //можно предложить зарегица, или ПНХ ;)
  21.             }else{
  22.                   echo "<center>ошибка: <b>такого логина в базе нет</b></center>";
  23.                   return FALSE;
  24. }
  25.  
mario Отправлено: 25 Сентября, 2007 - 11:08:24 • Тема: Приемы безопасного программирования на PHP • Форум: Обсуждение статей

Ответов: 19
Просмотров: 17896
Доброго всем дня!

Прочитал на днях статьюПриемы безопасного программирования на PHP, оч полезная инфа для меня оказалась.
Пишу свой двиган уж пол года, и ни как не мог понять как лучше всего написать авторизацию, видел много вариантов, и сесии использовали люди и "печеньки", но так же находил статьи на ХАК-сайтах как это всё обходилось кралось и проще говоря взламывалось.
Первое что меня порадовало это :
Цитата:
Пользователь при каждом запросе, помимо другой информации (сообщение в чате, или список сообщений в гостевой книге), отправляет серверу свой uid. При этом в документе с формами ввода будет присутствовать, наряду с другими формами, тег вида:
<input type=hidden name=uid value=1234567890>

, ведь даже если злоумышленник посмотрит иходный сгенерированный текст в браузере, то он увидит число которое подобрать нельзя, потомучто оно с каждым новым заходом на сайт, меняеца!!!Подмигивание

Минусы статьи тоже есть!!!

Я обычно при авторизации использую "escape_string", так как одного
CODE (php):
скопировать код в буфер обмена
  1. preg_match("/[^(w)|(x7F-xFF)|(s)]/",$username)
не достаточно есть ещё
" ' " и " " " спец символы. Много статей про Инъекции
в Интернете есть!!!
Функция экранирует все спец-символы (у меня она не расписана а в простом варианте):
CODE (php):
скопировать код в буфер обмена
  1.      
  2. function escape($text){
  3.      return  @mysql_real_escape_string($text);
  4. }
  5.  


Реализовываеца просто:
CODE (php):
скопировать код в буфер обмена
  1. $_POST['password'] = escape($password);


А так же советую всем тестить скрипты с дерективой ,
а пользоваться ими с "display_errors=Off" и на всех функциях ставить значок "@"(это значит что если в функции какая либо ошибка она её не покажет на экране)
злоумышленник не увидит пути к файлам в которых есть ошибка!!!!


Ох да совсем забыл, про запросы в БД на помнить!!! Если вы ищите что то конкретно в большой таблице то лучше всего использовать в запросах LIMIT 1, так как можно сформировать запрос с функцией BECHMARKПодмигивание
Ну вот вроде пока ВСЁ!!!
mario Отправлено: 05 Апреля, 2007 - 13:36:46 • Тема: Счетчик кликов и посещений • Форум: Обсуждение статей

Ответов: 5
Просмотров: 6498
Статья полезная!

А у меня вопрос: можно ли сделать чтоб статистика записывалась по IP адресу, т.е. 1 ИП один клик.?
Я к тому что у меня на фото галерее хотел сделать статистику просмотров фоток. Потому что бывает так что количество просмотров увеличиваеца с геометрической прогрессией так как один человек может посмотреть фотку не один разНе понял

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB