LINUX.ORG.RU

Авторизация без PHP/Python/Ruby/.htaccess

 , ,


0

1

Как сделать авторизацию пользователя без .htaccess, и без PHP/Python/Ruby?
То есть, на хостинге, где чистый HTML,CSS+JavaScript.
Пришла идея: как-то парсить аргументы GET-запроса javascript'ом, и делать переадресацию на страницу, адрес к которой - значение некоторого хэша (например, MD5).
Что-то типа http://site.ru/priv/ -> http://site.ru/priv/mysecreta8407ffacfabc16bfacc1173eb05b325.html

Пароль в таком случае - сам URI. А это очень уязвимый «одноразовый» пароль: если кто-то кинет линк на эту страницу, то никакого пароля для входа http-сервер не попросит.
Можно сделать менее уязвивым через POST-запрос. Но мне не хочется вводить пароль, хочется чтобы использовались куки.

Как можно решить такую проблему? Использовать javascript+globalStorage? Подскажите примерную схему такой авторизации.

★★★★★

Последнее исправление: CYB3R (всего исправлений: 1)

о_О_О
Но зачем такое нужно? какой смысл авторизироваться на сайте с _полностью_ статическим контентом? Можно, пожалуйста, озвучить юзкейс?

NeverLoved ★★★★★
()
Ответ на: комментарий от NeverLoved

Можно, пожалуйста, озвучить юзкейс?

/private-страничка, но без повторного ввода пароля как при .htaccess.
Другими словами, «страничка только для своих».
Платить хостеру за +PHP не хочу.

pacify ★★★★★
() автор топика

парсить аргументы GET-запроса javascript'ом

Если речь идёт про исполнение скрипта на клиенте, то это какой-то бред. Вы конкретную задачу озвучьте, пожалуйста, а то вы сейчас про выбор инструмента при вырезании гланд через задницу спрашиваете.

Wizard_ ★★★★★
()
Ответ на: комментарий от NeverLoved

на сайте с _полностью_ статическим контентом?

Контент не статический. Он - генерируемый статический, генерируется скриптом на Python на десктопе и заливается по FTP в мой каталог.

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

Другими словами, «страничка только для своих».

echo "<h1>Страничка для своих</h1>" > ${WEBROOT}/8407ffacfabc16bfacc1173eb05b325.html

Можно даже джаваскриптом md5 хэш считать от некой строки, введённой пользователем, и редиректить на эту страницу.

Wizard_ ★★★★★
()
Последнее исправление: Wizard_ (всего исправлений: 1)
Ответ на: комментарий от pacify

Есть хостинги с бесплатной динамикой. И наверняка есть бесплатные хостинги с basic http auth.

PolarFox ★★★★★
()

Если твой uri и есть пароль, то... заливай по этому «секретному» url и все. Или использую любую схему преобрзования «пароль» -> url. Но приватность тогда будет вопросом реверс-инжинирнга твоего скрипта.

omegatype ★★★
()
Ответ на: комментарий от pacify

Платить хостеру за +PHP не хочу

Сейчас 2013 год, где ты нашёл хостера с html-only планом? Сейчас VPS в моде, продаются за копейки, какие ещё html.

Wizard_ ★★★★★
()
Ответ на: комментарий от Wizard_

${WEBROOT}/8407ffacfabc16bfacc1173eb05b325.html

Утечка этого линка сделает страницу уязвимой. Я понимаю, что утечка пароля тоже сделает её уязвимой, но хотелось бы запрашивать именно пароль на доступ к этой странице, запрашивать всего один раз. Пока что на ум приходит использование globalStorage для хранения некоторого «пароля», который будет автоматически декодировать зашифрованную страницу ${WEBROOT}/article-12345/ (декодирование - на стороне клиента, на JavaScript).

pacify ★★★★★
() автор топика
Ответ на: комментарий от Wizard_

Можно даже джаваскриптом md5 хэш считать от некой строки, введённой пользователем, и редиректить на эту страницу.

Это как вариант. Я попробую такое реализовать. Обычно на сайте для этого есть поле «Введите код (CODE):» ))
Для простых случаев это сгодится.

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

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

Ну, тоже как вариант. Только не globalStorage, а localStorage. Да что там, даже в куках ключ можно хранить, объём позволяет. Реализация OpenPGP на javascript какая-то есть.

Wizard_ ★★★★★
()
Ответ на: комментарий от pacify

Пока что на ум приходит использование globalStorage для хранения некоторого «пароля», который будет автоматически декодировать зашифрованную страницу ${WEBROOT}/article-12345/ (декодирование - на стороне клиента, на JavaScript).

Так можно, да. Зачем тут даже localStorage? Можно обойтись обычными cookies. Можно даже ничего не расшифровывать, а просто скачивать страницу в том или ином формате с «секретного» URL, тогда как в адресной строке будет другой URL, ведущий на этот скрипт.

Еще можно перейти к другому хостеру.

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 1)
Ответ на: комментарий от Wizard_

Только не globalStorage, а localStorage. Да что там, даже в куках ключ можно хранить, объём позволяет. Реализация OpenPGP на javascript какая-то есть.

Ок. Спасибо за пояснения.

pacify ★★★★★
() автор топика

А heroku, appfrog уже отменили? Что за проблемы, блин, в 2013 году найти бесплатный хостинг с питоном или рубями?

drakmail ★★★★
()
Ответ на: комментарий от pacify

Утечка этого линка сделает страницу уязвимой.

Ну так не сообщай пользователю url, а именно:
1 - Сделайть index.html с ажаксом который будет запакованный массив с данными или просто зашифрованной страничкой по url.
2 - Поэтому даже если юзер сообщит кому то адрес он будет бесполезен ибо расшифровка идет на основной страничке.

OpenPGP выше уже предложили, но это имхо слишком :)

winddos ★★★
()

Как сделать авторизацию пользователя без .htaccess, и без PHP/Python/Ruby?

На Perl

globalStorage

deprecated

C1nde
()
Ответ на: комментарий от pacify

Тогда nodejs/lua/erlang или чего там еще не было в списке.

C1nde
()

Как можно решить такую проблему? Использовать javascript+globalStorage?

Авторизацией через Facebook сделанной на чистом js и подтягиванием нужного контента, если нужный юзер зашёл? Но мне кажется проще купить за три копейки любой говнохостинг с PHP.

Alve ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.