За последние 24 часа нас посетили 18030 программистов и 1698 роботов. Сейчас ищут 1583 программиста ...

Функция

Тема в разделе "PHP для новичков", создана пользователем Andrey5555, 15 авг 2008.

Статус темы:
Закрыта.
  1. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
  2. Anonymous

    Anonymous Guest

    Проблема как всегда в том ,что автор затруднится рсскими словами сказать, что функция ДОЛЖНА делать!
     
  3. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Горбунов Олег, я, кажется, понял и, кажется, даже код написал.
     
  4. Anonymous

    Anonymous Guest

    Угу, ты правильно догадался...
     
  5. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    ну и я тоже хочу! %)
    Код (Text):
    1. function isNum($value) {
    2.     return (preg_match("/^[0-9]+$/", $value));
    3. }
     
  6. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    antonn
    isNum(-1)==false ;)
     
  7. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Dagdamor
    это большая проблема, не так ли? :)
     
  8. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Такой вариант пробовал, вот только проблема, что если $info будет содержать '1fgf', то будет 1, а не 0. В этом то и заключаеться вся проблема.
     
  9. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    В общем, ничем помочь не могу.
     
  10. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Обьясняю, необходимо такую проверку заключить в функцию:

    PHP:
    1.  
    2. $id = $_GET['id'];
    3. $id = htmlspecialchars ($id, ENT_QUOTES);
    4. $id = trim ($id);
    5. $id = (int)$id;
    Но так же есть вариант:

    PHP:
    1.  
    2. $text = $_POST ['announcement'];
    3. $text = htmlspecialchars ($text, ENT_QUOTES);
    4. $text = mysql_real_escape_string($text);
    5. $text = trim ($info);
    Это надо совместить, тоесть надо использовать $id = (int)$id; только тогда когда значение может быть только числом, а не всегда. Будут вопросы задавайте ;)
     
  11. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Давайте разберемся. Себе Вы передаете всегда правильные параметры, а проверка идет для подстраховки. Это значит, что для id нужно проверять, является ли он числом или нет.
    if ((int)$_GET["id"] != $_GET["id"]) {
    //Не является
    }

    Если Вам необходимо передать текст, то нет необходимости его сразу экранировать разными способами. Обрабатывать надо в зависимости от ситуации.
     
  12. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Почти) Если передаеться id, то оно должно обязательно быть числом. Как мне это все в функцию записать?

    P.S. Можно на ты.
     
  13. Vitas

    Vitas Активный пользователь

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    PHP:
    1. <?
    2.  
    3. function check($id) {
    4.     if (!is_numeric($id)) {
    5.         //die("офигел шоле сцуко?!");
    6.         return 0;
    7.     }
    8.     return (int) $id;
    9. }
    10.  
    11. // То есть
    12. function check($id) {
    13.     return is_numeric($id) ? $id : 0;
    14. }
     
  14. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Горбунов Олег
    Помогите пожалуйста :)
     
  15. Anonymous

    Anonymous Guest

    Я вопрос задал. Русскими словами, скажи, какого результата ты хочешь добится? Только без терминов и прочих абстракций. Просто, одинм предложением, по русски.
     
  16. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Я хочу сделать функцию, которая максимально обезопасит данные которые передаються от пользователя.
     
  17. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Прогресс!
    Безопасность данных при использовании зависит от места использования. Для сохранения в HTML-файл не нужно устранять sql-инъекции, для записи в БД не нужно заботиться о тегах. Данные опасными быть не могут, может быть опасным их использование. Где твои данные будут использоваться?

    • Upd. Йа флудер!
      [​IMG]
     
  18. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Не повторяйте чужих ошибок. Опасных данных не бывает !!!
     
  19. Anonymous

    Anonymous Guest

    Обезопасит от кого?
    Данные это данные. У них зубов нет.
     
  20. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    данные, будучи употребленные в запросе - это опасные данные. всегда. поэтому нужно позаботиться об их экранировании.
    и точка.
     
  21. Anonymous

    Anonymous Guest

     
  22. Andrey5555

    Andrey5555 Активный пользователь

    С нами с:
    29 ноя 2007
    Сообщения:
    486
    Симпатии:
    0
    Адрес:
    Киев
    Ну а как же иньекции и тп?
     
  23. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Горбунов Олег
    согласен, зубов нет, и нет вообще ничего материального.
    про зубы никто и не спорит.

    скажи, sql-i на пустом месте появилась?
     
  24. NOmeR1

    NOmeR1 Активный пользователь

    С нами с:
    11 май 2008
    Сообщения:
    97
    Симпатии:
    0
    Данные не опасны, не прекрытая уязвимость - вот это нельзя назвать безопасным.
     
Статус темы:
Закрыта.