Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Autoryzacja - ale bez okienka: WWW-Authenticate
sniver
post
Post #1





Grupa: Zarejestrowani
Postów: 159
Pomógł: 5
Dołączył: 31.08.2007

Ostrzeżenie: (0%)
-----


Być może to będzie dla wielu proste, ale mi moja kreatywność sie skończyła gdy nie znalazłem nic w Google, manualu i na forum...

Sprawa wygląda następująco..

Jest sobie zwyczajny, ładnie ostylowany formularz logowania z polem login i hasło. No i powiedzmy tyle tego co musi być (IMG:style_emoticons/default/smile.gif)

Dotychczas wykorzystywałem mechanizm sesji - i tu nie mam nic przeciwko, ale muszę dodatkowo dodać autoryzacje a konkretnie to zapamiętywanie że ktoś sie zalogował, ale tak by to przetrzymać w tym mechanizmie autoryzacji WWW.
  1. <?php
  2.  
  3. $login = "admin"; // tu wpisz swój login
  4. $password = "pass"; // a tu swoje hasło
  5.  
  6.  
  7. if( !isset($_SERVER['PHP_AUTH_USER']) or strcmp($_SERVER['PHP_AUTH_USER'],$login) or strcmp($_SERVER['PHP_AUTH_PW'],$password) ) {
  8. // Formulaz logowania
  9. } else {
  10. // User sie zalogowal i różne rzeczy sie dzieją..
  11. }
  12.  
  13. ?>

No i powiedzmy że tak to mniej więcej powinno działać. Ale nie chcę ani wyskakującego okienka autoryzacyjnego.
Wiem że da się to zrobić - ale niestety jak zwykle nie wiem jak.

Z góry dzięki za pomoc!
Powód edycji: [blooregard]: Dodałem BBCode, proszę o tym pamiętać na przyszłość
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zegarek84
post
Post #2





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


Ale doszliśmy do porozumienia, że serwer A jest tutaj kluczowy?? coś jak serwer "matka"??

Informacji potrzebujesz tylko w kluczowych sytuacjach... jak dla mnie najwygodniej będzie tak jak napomniałem poprzez DHTML (duży minus, iż nie zadziała przy wyłączonym javascript)...

jak ja to widzę(IMG:style_emoticons/default/questionmark.gif) ... zacznijmy od tego, że akurat ten jeden przynajmniej skrypt nie może być buforowany (najprostsze rozwiązanie to dorzucić do get jeszcze timestap co sprawi, iż link zawsze będzie inny)

na serwerze A masz jakiś pliczek generowany dynamicznie tak jak stronę [proponuję ten adres przepisać w .htaccess coby końcówka wyglądała na *.js a nie *.php) - po stronie serwera nie problem sprawdzić, czy zalogowany czy nie na podstawie identyfikatora sesji będącego w cookies serwera A...
więc generujesz na serwerze B:
http://serwerA/sprawdz_delikwenta.js?timestap=1283423243bleble [timestap do niczego Ci nie służy (IMG:style_emoticons/default/winksmiley.jpg) ]

ten pliczek jest załączany na stronie wygenerowanej z serwera B i skryptami javascripti sprawdzasz wynik [w powyższym skrypcie przesyłasz informacje jawne potrzebne do dalszego transferu danych jeśli jest zalogowane takie jak np. nick]....

i dalej skryptami js robisz swoje wyświetlając zapytania i inne odpytując serwer A i serwer B przez DHTML...

gdy już jest potwierdzone, że uzy_szkodnik chce zaimportować konto coby to było bezpieczniejsze (a nie ktoś się podszył) przy imporcie danych na serwer B z serwera A [komunikacja bezpośrednia pomijając przeglądarkę] pobierz także podstawowe dane sesji jak np. nagłówki samej przeglądarki oraz IP i jeśli się różnią to danych zaimportowanych nie wykorzystujesz, jeśli potwierdziłeś zgodność kończysz importowanie (to tylko algorytm taki daję)

jest jeszcze rozwiązanie (algorytm) na zrobienie tego bez javascript jednak chyba nie ma co o nim pisać bo były by z 2 redirekty (niby też nie trzeba by nic klikać) - ale sama idea jest podobna jak ta co opisałem powyżej...

[edit] w pliku js możesz jeszcze dla zalogowanego uzyszkodnika podać jako jedną z wartości zmiennych identyfikator sesji z serwera A jako kolejny np. czynnik "identyfikujący" - źle nazwane - to wysylając dane z serwera A do B przy komunikacji bezpośredniej mając to podajesz dane osoby z tym identyfikatorem sesji (tą wartość przy wysyłaniu informacji na serwerze A sprawdzić możesz jako ciągłość sesji, a na serwerze B porównać pozostałe czy czasem jakimś sposobem passkeya nie skopiowali)...

Ten post edytował zegarek84 23.04.2010, 11:48:35
Go to the top of the page
+Quote Post

Posty w temacie
- sniver   Autoryzacja - ale bez okienka: WWW-Authenticate   20.04.2010, 18:05:02
- - sniver   Ok może coś nie tak wyjaśniłem. Muszę przekazać in...   21.04.2010, 06:21:02
- - zegarek84   nie wiem jak chcesz przechodzić na drugą stronę al...   21.04.2010, 10:41:59
- - sniver   ten sposób wykorzystywałem już, ale mówiąc szczerz...   21.04.2010, 17:52:05
- - zegarek84   gdyż za przeproszeniem szukasz dziury w całym ;D.....   21.04.2010, 18:23:35
- - sniver   spoko może ktoś sie jeszcze znajdzie :-)   21.04.2010, 18:25:48
- - doman78   hmmm... nie wiem czy do końca zrozumiałem, ale zak...   22.04.2010, 09:02:29
- - sniver   Cookie można nadać dla domeny w tym przypadku A. ...   22.04.2010, 09:07:15
|- - zegarek84   Cytat(sniver @ 22.04.2010, 10:07:15 )...   23.04.2010, 10:23:08
- - sniver   twoje rozwiązanie nie zadziała w internet explorer...   23.04.2010, 10:38:15
|- - zegarek84   Cytat(sniver @ 23.04.2010, 11:38:15 )...   23.04.2010, 11:03:46
- - sniver   o tym ajax to przekombinowałem. chodziło mi o prze...   23.04.2010, 11:17:22
- - zegarek84   Ale doszliśmy do porozumienia, że serwer A jest tu...   23.04.2010, 11:42:06
- - sniver   Ogólnie rzecz biorąc to się rozumiemy. Tyle że ab...   23.04.2010, 11:52:16
|- - zegarek84   Cytat(sniver @ 23.04.2010, 12:52:16 )...   23.04.2010, 12:01:50
- - sniver   o ja će miszczu jesteś - ukłony! szukałem i g...   23.04.2010, 12:32:17
- - zegarek84   dlatego od drugiego mojego postu pisalem, że chyba...   23.04.2010, 12:36:17
- - sniver   stąd pomysł by wykorzystać autoryzacje http - to n...   23.04.2010, 13:40:20
- - zegarek84   ale w końcu cookies z serwera A nie sa wysyłane w ...   23.04.2010, 14:08:11
- - sniver   Test dotyczący ciasteczek wykonałem w następujący ...   23.04.2010, 14:29:22
|- - zegarek84   Cytat(sniver @ 23.04.2010, 15:29:22 )...   23.04.2010, 15:10:40
- - sniver   tu z kolei google powie że nie widzi strony - robi...   23.04.2010, 15:19:41
- - zegarek84   Cytat(sniver @ 23.04.2010, 16:19:41 )...   23.04.2010, 16:52:36


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 16:12