За последние 24 часа нас посетили 110854 программиста и 7640 роботов. Сейчас ищут 1925 программистов ...

Админко и безопасность

Тема в разделе "Прочие вопросы по PHP", создана пользователем Padaboo, 13 май 2010.

  1. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.241
    Симпатии:
    1
    как лучше сделать,куда класть где и как прятать )
    нужна ли она в папке с сайтом? может быть сделать у себя на компе просто)
    если делать в папке с сайтом то как ее правильно прятать и чем паролить,
    у кого как сделано?
    попутно вопрос, у меня на сайт заливаются картинки, они загружаются во временный каталог, потом ужимаются, переименовываются и переносятся уже на постоянное место жительства , нужно ли ставить какой нибудь антивирус(линукс)?надо ли отключить exec как это сделано на хостингах? нужно ли еше что то отключить?
    с нулем байт не смог себе ничего залить, хотя может быть не правильно делал или интерпретатор починили ^^
    какие права по уму выставлять на папки с сайтом?
    все данные от пользователя которые идут в запросы обрабатываются, режутся или приводятся к инту, нотисов нету вроде бы ни при каких условиях, этого достаточно?
     
  2. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.744
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Суй куда хочешь, прятать не надо, пароль пользователя держи в куках в виде хэша, но можно и к сессии привязать. Антивирус не нужен.

    Картинки есть картинки. Переименуй файл в .jpg - для браузера он будет картинкой.

    Главное - излишни не писай. :)
     
  3. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.241
    Симпатии:
    1
    PHP:
    1. <?
    2. if(isset($_COOKIE['pass']) && md5($_COOKIE['pass'])==''){
    3.    
    4. }
    т.е. вот такой конструкции хватить должно ?
     
  4. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.507
    Симпатии:
    2
    Адрес:
    Донецк
    И чего она делает?

    Когда такое
    вообще будет истиной?
     
  5. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.744
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    PHP:
    1. <?
    2. if ($_COOKIE['pass'] == md5($_POST['pass'])){
    3.     echo 'Я - админ!';
    4. }
    :)
     
  6. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.241
    Симпатии:
    1
    всмысле проверка куков) типа с мд5 напутал для кук
    PHP:
    1. <?
    2.  if(isset($_COOKIE['pass']) && $_COOKIE['pass']=='тут хэш пароля'){
    3.   //тут админка  
    4.  }else {
    5.  //тут форма для входа
    6. }
    или как оО
     
  7. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.639
    Симпатии:
    1
    Насколько я понял идею lexa
    Ты у себя в куках хранишь хэш пароля. А когда авторизируешься, то сверяешь хэш введенного пароля с хэшем из куки.
     
  8. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.744
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Ага, так.
     
  9. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.982
    Симпатии:
    2
    У меня авторизация одновременно может быть только с одного IP.
    Насчет механизма сессий тоже есть кое-какие решения у меня, используются совместно с учетом активных администраторов.
     
  10. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.241
    Симпатии:
    1
    Apple
    прикольно, мм а может быть сделать c чтобы только айпи сервера можно было заходить, он у меня один с ним...
     
  11. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.982
    Симпатии:
    2
    Если авторизация производится с локального адреса, то тогда это имеет смысл, иначе - нет.
    Например, когда админка работает только для адреса 127.0.0.1 или 192.168.1.х, то можно.
    Иначе смысла я не вижув авторизации ТОЛЬКО по IP.
     
  12. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.241
    Симпатии:
    1
    о, спасибо так и сделаю) по локальным ip)
     
  13. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.644
    Симпатии:
    2
    У меня вообще в куке "сидит" случайный хеш (не пароля), и то только если юзер сам захотел сделать автовход. В таблице юзеров есть дополнительное поле для него.
    Так что даже если кто получит куку с этим хешем и подберет прогой ту случайную строку с мд5 - то всеравно не будет знать сам пароль.
     
  14. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.543
    Симпатии:
    623
    Нафиг хэш пароля в куки.
    Хэш в сессию, в куки - SID, в сессии еще REMOTE_ADDR, USER_AGENT и всякие другие HTTP-заголовки. Чтобы вдруг никто не подменил SID.
     
  15. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.744
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    [vs], ок. твоя логика: я привяжу пользователя к IP. Стоп. Один IP может быть у кучи пользователей. Ну, тогда я сделаю проверку по браузеру.

    Строку браузера можно подделать.

    Но идентификатор сессии как можно узнать? Получив куку. Это почти невозможно.

    Так зачем платить больше?
     
  16. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.543
    Симпатии:
    623
    lexa, к IP мы привяжем не пользователя а конкретную сессию.
    Если пароль хранится в куки - взломщику достаточно украсть куку, если в куках SID - то надо им воспользоваться, пока сессия жива. Если при этом осуществляется проверка каких-то левых данных, и в случае неудачи сессия убивается, то шансов у взломщика почти нет :)
     
  17. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.241
    Симпатии:
    1
    а как он куку то украдет?
     
  18. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.744
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Если бы у бабушки был хрен, она была бы дедушкой. Куку никто не украдёт. Ты всё слишком сильно усложняешь. В том числе жизнь пользователю: каждый раз после дисконекта логиниться тот ещё геморрой.

    Оки, консенсус: пихать id сессии в куку и всё. :)
     
  19. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.543
    Симпатии:
    623
    XSS
     
  20. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.507
    Симпатии:
    2
    Адрес:
    Донецк
    мальчик, если я провел успешную XSS атаку, то мне не надо красть куку, я могу ей сразу пользоваться.
     
  21. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.241
    Симпатии:
    1
    [vs]
    ну, у меня js код на сайт никуда не внедришь, это надо ловить меня, при этом знать что я админю такое то место,дать мне ссылку, потом как то добиться чтобы я по ней перешел ...
     
  22. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.543
    Симпатии:
    623
    Padaboo
    Ну, это обычно так. Есть же еще менее популярные способы, вплоть до троянов.
    lexa то прав
    я просто привык сразу делать "железно" =)
     
  23. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.674
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    На самом деле нужно сделать всего несколько, которые гарантируют что даже если куку утащат, то фиг они её смогут заюзать. Им придётся прикинутся вами вплоть до IP.

    1. Использовать HTTPOnly cookies.
    2. В Cookie хранить SID cессии, естественно он генерируется каждый раз новый. При logout сбрасывается и генерируется новый.
    3. Добавить проверку на ip. Т.к. у меня сессии в memcache, то memcache ключ у меня генерируется так: md5( SID + user ip + user agent). Соотвественно даже если куку сопрут каким-то образом, заюзать её не смогут, т.к. ip сменится. Т.е. сессия привязана к IP.
     
  24. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.241
    Симпатии:
    1
    жесть ><
    а можно просто тупо через .htaccess открыть доступ только локальному 192.168.0.* ?это реально будет обойти?
     
  25. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.744
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Блин. Народ, вы все упали одновременно? Важна в первую очередь цель. Вероятнее всего, Padaboo делает исключительно для себя. Поэтому все эти ваши советы по привязке к IP идут лесом, а я - д'Артаньян.

    Padaboo, не всегда IP выдают на человека, порой один IP у целого дома или района. А подсеть - тем более. Сидит сосед твой, режется в ферму. Ты ему ссылку прислал, а не выспался и скопировал из адресной строки УРЛ админки. И нафига теперь ферма соседу? :)

    Кстати, иногда в remote_addr пихают IP сервера.

    Суй пароль в куку, не мучай помидоры там, где оно не надо. :)