Re: подскажите начина ющему php-программисту 2

2010-08-06 Нитка maxyer
В продолжение начатой темы ;)
Ну допустим написал я нечто подобное
form method=post action=authorize.php
   input type=text name=login
   input type=password name=pass
   input type=submit value=OK
/form

По поводу authorize.php все ясно.
А теперь вопрос.
Можно ли сделать для пущей надежности, чтобы pass уже на сервер 
отправлялся не в открытом виде, а в зашифрованном ?
Чтобы по пути не перехватил кто-нибудь ;)

-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту 2

2010-08-06 Нитка Sergey Poulikov
06.08.2010 14:58, maxyer пишет:
 В продолжение начатой темы ;)
 Ну допустим написал я нечто подобное
 form method=post action=authorize.php
input type=text name=login
input type=password name=pass
input type=submit value=OK
 /form

 По поводу authorize.php все ясно.
 А теперь вопрос.
 Можно ли сделать для пущей надежности, чтобы pass уже на сервер 
 отправлялся не в открытом виде, а в зашифрованном ?
 Чтобы по пути не перехватил кто-нибудь ;)

   
https?

-- 
/Regards,
Sergey Poulikov/
-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту 2

2010-08-06 Нитка Sergey Poulikov
06.08.2010 15:24, Сергей Блохин пишет:
 Ломанул я вашу базу, знаю ваш хеш. Мне достаточно будет его в таком случае 
 просто передать authorize.php.
   
зачем? зачем передавать authorize.php? если вы уже ломанули базу, что
еще вы хотите оттуда извлечь, или вам принципиально авторизоваться надо? :)


-- 
/Regards,
Sergey Poulikov/
-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту 2

2010-08-06 Нитка maxyer
 Можно ли сделать для пущей надежности, чтобы pass уже на сервер
 отправлялся не в открытом виде, а в зашифрованном ?
 Чтобы по пути не перехватил кто-нибудь ;)


 https?
Возможно ...
К сожалению все, что я знаю о https, это то, что это защищенный протокол 
http.
Я понимаю, что это обширная тема, которую в письме не раскроешь, поэтому 
посоветуйте, что почитать по поводу того, как этот https использовать и 
наверное надо что-то сделать с моим http-сервером, чтобы он с ним работал.

-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту 2

2010-08-06 Нитка maxyer
06.08.2010 18:12, ASLok пишет:
 Т.е. шифровать, соединение или пароль? Если пароль, яваскриптом что ли? )
А в JavaScript нет функций шифрования типа md5 или sha1 ?

-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту 2

2010-08-06 Нитка maxyer
06.08.2010 19:07, Ivan Surzhenko пишет:
 В данном случае можно получать от сервера соль и считать 
 md5(соль+md5(пароль))
Сорри, что-то я не понял ;(
Что за соль такая ?
И где считать md5(соль+md5(пароль)) ?
На стороне клиента ?


-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту 2

2010-08-06 Нитка Sergey Poulikov
06.08.2010 16:47, maxyer пишет:
 Можно ли сделать для пущей надежности, чтобы pass уже на сервер
 отправлялся не в открытом виде, а в зашифрованном ?
 Чтобы по пути не перехватил кто-нибудь ;)


   
 https?
 
 Возможно ...
 К сожалению все, что я знаю о https, это то, что это защищенный протокол 
 http.
 Я понимаю, что это обширная тема, которую в письме не раскроешь, поэтому 
 посоветуйте, что почитать по поводу того, как этот https использовать и 
 наверное надо что-то сделать с моим http-сервером, чтобы он с ним работал.

   
http://httpd.apache.org/docs/current/mod/mod_ssl.html
http://www.modssl.org/
ну и google://apache+mod_ssl

-- 
/Regards,
Sergey Poulikov/
-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту 2

2010-08-06 Нитка Sergey Poulikov
06.08.2010 18:09, Ivan Surzhenko пишет:
 6 августа 2010 г. 16:43 пользователь Sergey Poulikov
 script...@gmail.com написал:
   
 злоумышленник не будет перехватывать и отправлять все это дело в ручную.
 с клиента посылается уже сфоримрованный хеш с примесью salt и если
 перехватить этот уже сформированный хеш, и отправить серверу то получим
 пользовательскую сессию, вся эта операция может осуществляться программно и
 занимать доли секунды.
 
 Если мы отправим этот хеш серверу, то сервер должен нарисовать болт на
 18 (резьба метрическая), так как пользователь уже отправлял запрос
 авторизации в рамках данной сессии с данной солью. И вообще такую
 ситуацию надо как-то отлавливать и анально наказывать подсовывающего
 хеши.

   
ненадежно, запросы могут придти почти одновременно, а если лочить
обработку то это совсем будет узким горлышком в плане производительности.
А вот наказывать надо всех злоумышленников да только не всегда это возможно.
 salt не защищает от перехвата данных, для безопасного обмена данными надо
 использовать https он именно для этого и создан.
 
 Мы ж вроде пароль защищаем? не? Если нужно шифровать все данные и наш
 сервер в состоянии выдержать прирост нагрузки из-за постоянного
 шифрования/дешифрования (кстати, насколько велик этот прирост?), то да
 - проще гонять по https.

   
Мы защищаем доступ. Пароль не нужен если можно получить сессию не зная
пароля. Если есть возможность перехватить данные во время авторизации,
то есть возможность получить доступ.
Шифровать все данные и уж тем более постоянно не обязательно.

-- 
/Regards,
Sergey Poulikov/
-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту 2

2010-08-06 Нитка Sergey Poulikov
06.08.2010 18:23, Владимир Бажанов пишет:
 Пишем страничку авторизации для пентагона? :)

   
Пентагон совсем непричем. Для некоторых видов деятельности существуют
определенные правила и их несоблюдение наказуемо и в некоторых случаях
очень жестко.
-- 
/Regards,
Sergey Poulikov/
-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту

2010-08-05 Нитка std_out

 Обычно делается хэш от пароля (md5 и др.) и в последствии используется
 только хэш, хранится в БД. Если нужно проверить соответствие, то от
 кандидата делается соответствующий хэш и сравнивается. Если очень
 волнует, чтоб не подобрали слово с таким же хэшом, то можно сделать
 объединенный хэш разными алгоритмами

   
А науке известны случаи подбора строк по известному md5-хэшу ?

-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту

2010-08-05 Нитка Sergey Poulikov
05.08.2010 20:58, Владимир Бажанов пишет:

 В-третьих, (во мне проснулся DjangoRoR девелопер) а что, ДО СИХ ПОР это
 надо в пхпх делать руками? Пока весь мир пользуется готовыми решениями,
 с salt-примесями? Ужас.
   
Вы путаете фреймворк и язык программирования. Если делать веб приложение
на чистом ruby или python то точно также поднимутся такие же вопросы у
начинающего. В php фреймворках точно также существуют готовые и удобные
решения.
 Автор, поучите Ruby On Rails, 
Совет хороший, учиться лучше на хорошем.
  А пхп
 оставьте школьникам. Он устарел давно.

   
php будет жить еще долго и устаревать он не собирается. у php низкий
порог вхождения из-за этого есть масса плохого кода, но есть и грамотные
разработчики умеющие использовать и этот инструмент. А вообще плохому
танцору и...
Примеры facebook, dailymotion и многие другие доказывают что php
списывать как устаревший очень даже рано.

 P.S. Фух, выговорился:)
   

P.S. вот меня тоже тянет сегодня похоливарить :)

-- 
/Regards,
Sergey Poulikov/
-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту

2010-08-05 Нитка Sergey Poulikov
05.08.2010 19:49, ASLok пишет:
 Писать свою процедуру шифрования-расшифровки, думаю, несеръезно.
 Как это обычно делается ?
 
 Обычно делается хэш от пароля (md5 и др.) и в последствии используется
 только хэш, хранится в БД. Если нужно проверить соответствие, то от
 кандидата делается соответствующий хэш и сравнивается. Если очень
 волнует, чтоб не подобрали слово с таким же хэшом, то можно сделать
 объединенный хэш разными алгоритмами
   

Используйте лушче sha1, и лучше чуть сложнее чем просто хеш пароля.
Еще лучше, возьмите готовый фреймворк, обкатанный на практике и
подсмотрите как это реализовано там. Вообще ковырять чужой код, если он
грамотно написан, полезная практика.

-- 
/Regards,
Sergey Poulikov/
-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту

2010-08-05 Нитка Vladimir Smagin
хеши обычно хранить смысла нет. юзеры будут делать пароли типа 123 или 
йцукен. как не крути, а БУДУТ. даже если ты говнокодер и самсебеадмин и 
базу твоего сайтика сольют в первый же день, то мд5 все равно очень 
быстро сломается по причине лени самого юзера. практика показывает, что 
сами сайты ломают редко. все пароли добываются обычными троянами, 
уловками и тупым перебором паролей. но даже если ты захочешь хранить 
хеши, то crypt умеет делать и пхп, и сам мускуль. при регистрации 
получил от юзера пароль, получил его хеш и записал в базу этот хеш. при 
авторизации опять получаешь пароль, берешь от него хеш и сравниваешь с 
хешем из базы данных. все элементарно и просто.

теперь о базе данных. данные пользователей хранятся в таблицах 
пользователей. если есть группы пользователей, то должна быть таблица 
групп. если пользователь имеет доступ к нескольким группам, то должна 
быть и таблица связи пользователь-группа (например, группа юзеров 
новости имеет доступ только к новостям и группа юзеров закачки имеет 
доступ только к закачкам. а админ имеет доступ к обоим разделам, поэтому 
он сразу в 2 группах).

например:

таблица пользователи
- идентификатор_пользователя (ПК, ЧИСЛО)
- имя_пользователя (СТРОКА)
- емыло (СТРОКА)
- пароль (СТРОКА) -- тут решать тебе хранить открытый пароль или хеш

таблица группы (довольно грубо и просто. при желании можно улучшить 
структуру)
- идентификатор_группы (ПК, ЧИСЛО)
- группа_по_умолчанию (БУЛЬ) -- например, группа анонимуса
- право_чтение_записей_новостей (БУЛЬ)
- право_чтение_записей_закачек (БУЛЬ)
- право_запись_новости (БУЛЬ)
- право_запись_закачки (БУЛЬ)

таблица группа_пользователь
- идентификатор_пользователя (ПК, ЧИСЛО)
- идентификатор_группы (ПК, ЧИСЛО)

таблица групп это простой граф, определяющий что может делать группа, а 
что нет. например, можно создать 2 группы: анонимус и юзер. анонимусы 
могут только читать, но не могут писать. юзеры могут и то, и другое.

On 08/05/2010 10:44 PM, std_out wrote:
 Hi all !
 Пришло время делать в моем веб-приложеньице раздельный доступ для разных
 категорий пользователей.
 Посоветуйте, как организовать авторизацию.
 Не в смысле, что там кукисы-сессии, а где и в каком виде наиболее
 удобно/безопасно хранить пароли.
 Т.е. хранить наверное все-таки в базе данных приложения (в моем случае
 MySQL), а вот в какой форме - вопрос ...
 В виде простого текста наверное будет неправильно, видимо надо их
 как-нибудь шифровать/расшифровывать.
 Писать свою процедуру шифрования-расшифровки, думаю, несеръезно.
 Как это обычно делается ?





-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту

2010-08-05 Нитка Sergey Poulikov
05.08.2010 21:35, Владимир Бажанов пишет:
 Начинающий грамотного кода может вообще не понять. Сам разбирался с
 кодом на Ruby...

 В Чтв, 05/08/2010 в 20:26 +0300, Alexander пишет:
   
 Вообще ковырять чужой код, если он
 грамотно написан, полезная практика.
   
 Как узнать _НАЧИНАЮЩЕМУ_ программисту, что код грамотно написан?
 
   
Начинающий может не понять сложного кода. И если он не понимает какого
либо кода, значит не дорос, не хватает теории, надо книжки почитать.

А вот как узнать какой код грамотно написан, тут наверное легче всего
взять приложение, фреймворк в качестве которого вы не сомневаетесь. Для
ruby это хотя бы тот же ror, для php можно посмотреть Zend, Symfony и т.д.

-- 
/Regards,
Sergey Poulikov/
-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту

2010-08-05 Нитка Sergey Poulikov
05.08.2010 21:21, Владимир Бажанов пишет:
 А я с Python начинал :)

   
Python кстати как язык для начала очень хорош, я сам считаю что для
обучения он один из лучших. Не только конечно для обучения.
 А насчёт фейсбука и пр. пхпшных сайтов - ну что сказать, студентов
 небось нанимали индусов и вот получили. Или просто переписывать на новых
 платформах дорого и нерационально.

   
Не совсем так, dailymotion например переписывается и выбран опять был
php, Yahoo опять же попробовали на одном проекте, потом решили и на
другом, видимо понравилось :) Facebook опять же, ну не индусы его делали
:) И примеров много, wikipedia, digg.com Ну не индусы это все делали :)

 Я собственно почему рельсы советую: это придумал не я, но в интернетах
 есть мнение что это наиболее перспективный фреймворк.
   
То что вы советуете рельсы это не плохо, фреймворк действительно очень
хороший. А вот мнений в интернетах существует много, только знаете
моська лает, а слон идет :)


-- 
/Regards,
Sergey Poulikov/
-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту

2010-08-05 Нитка Vladimir Smagin
не люблю когда сайт делает пароли за меня. регистрацию на таком ресурсе 
я сделаю только если уж вообще припрет и больше никуда не сунуться.

On 08/06/2010 12:41 AM, Alexander wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 08/05/2010 08:36 PM, Vladimir Smagin wrote:

 хеши обычно хранить смысла нет. юзеры будут делать пароли типа 123 или
 йцукен. как не крути, а БУДУТ.
  
 То вы плохо крутите. У меня, например, не делают. Догадываетесь, почему? :)

 - -- 
 http://www.ashep.org
 Jabber: alexander.shepe...@gmail.com
 ICQ UIN: 124692835
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.10 (GNU/Linux)
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

 iQEcBAEBAgAGBQJMWvfNAAoJEMssnyZhiNTv/HAH/R/jUYpM5LtlPLB/Zsb6es4m
 pfwNmp9KLXyku1mpawhx3Q6s2hyEModHbpUowSHWxfXCggT8KleCiWWdGslqa9x0
 WFvaAUOonfUHDCPiafGD1/RcSoSj1LiFmijXxLKaX9ta2gEZNvQ1Aeo+zbAvXUH5
 j4xjDJBAwLnBFPmW4gsTHis7UGeXolAiM0jAGQVIf1L0xFHUEqYrYyEAbsOiEDS9
 2LFJk+tcKADzvqJudJxg0SFhXpC8GPjKUUGs37bPh6kNhPLqDdp3afYVd6Rban4z
 VLwIPYJLw6jKKRg7TQbrwpCH/mrljJeajCRlxGkTwJkrDpAyNT5N5u/vGzkCKVM=
 =5s6p
 -END PGP SIGNATURE-




-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru


Re: подскажите начина ющему php-программисту

2010-08-05 Нитка maxyer
06.08.2010 0:36, Vladimir Smagin пишет:
 хеши обычно хранить смысла нет. юзеры будут делать пароли типа 123 или
 йцукен. как не крути, а БУДУТ. даже если ты говнокодер и самсебеадмин и
 базу твоего сайтика сольют в первый же день, то мд5 все равно очень
 быстро сломается по причине лени самого юзера.
Спасибо за такой подробный ответ.
На самом деле у меня дела обстоят значительно проще - надежный пароль 
нужен только админу (админ - это я ;), а все остальные вообще пароля не 
имеют.
Так что, думаю, простого md5(пароль), ну или sha1(md5(пароль)) вполне 
будет достаточно ;)

-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru