ugrás a tartalomhoz

PHP password védelem

szogedi · 2009. Már. 21. (Szo), 22.53
Üdv mindenkinek!

Nem tud valaki egy egyszerű kódot, ami az alábbihoz hasonló, s amellyel url-ben át tudom adni a php fájlnak a bejelentkezési adatokat. Az alábbi kód is működik a http://qwe:rtz##kukac##valami.hu/xxx.php módszerrel, de nekem a http://valami.hu/xxx.php?username=nev1&password=jelszo1 elküldésre lenne szükségem. Találkozot már valaki valami működő verzióval?

Sajnos az include-olás nem jöhet szóba, ezért az alábbihoz hasonló működésűt keresek, ahol az azonosítás után teljes php kódot tudok futtatni.

<?php

$myusername = "myusername";
$mypassword = "mypassword";
$areaname = "My Protected Area";

if ($_SERVER["PHP_AUTH_USER"] == "" || $_SERVER["PHP_AUTH_PW"] == "" || $_SERVER["PHP_AUTH_USER"] != $myusername || $_SERVER["PHP_AUTH_PW"] != $mypassword) {
header("HTTP/1.0 401 Unauthorized");
header("WWW-Authenticate: Basic realm=\"$areaname\"");
echo "<h1>Authorization Required.</h1>";
die();
}

?>
<?php
... //ide kellene jönnie egy bonyolult php script-nek
?>
 
1

Nem akarod

janoszen · 2009. Már. 22. (V), 11.34
Nem szeretnél ilyet, hiszen akkor a böngésző címsorából ki lehetne olvasni a jelszót, nemde?
2

Pedig akarok...

szogedi · 2009. Már. 22. (V), 22.55
...mégpedig nagyon, mert feltétlen szükségem van rá. Tud valaki segíteni, s nem lebeszélni róla?
3

:?

fchris82 · 2009. Már. 23. (H), 03.24
Te. Most kell a védelem, vagy sem? Döntsd el. Ha kell, akkor használj védelmet - amit kérdezel, az nem védelem -, ha meg nem, akkor meg ne bohóckodj. Most komolyan...

Sztem fuss neki a probléma leírásnak távolabbról, fejtsd ki, hogy minek is ez neked, miért így szeretnéd, és akkor talán tudunk épeszű megoldást is javasolni.
4

A problémának neki futtottam...

szogedi · 2009. Már. 23. (H), 06.18
...s pont erre van szükségem. Ahogy a téma leírásában megvan, csak ez a változat jöhet szóba nálam. Tud rá valaki megoldást ezen a módon, mielőtt megváltoztatná az életem, vagy inkább keressek még ezer fórumon tovább? Sosem értettem, hogy miért kell mindig eljátszani a "neked nem erre van szükséged" verziót. Tudom, a gyengeségeit a felvetett problémámnak, de számomra ez egyben az erőssége is. Ha meg lenne egy a fentihez nagyban hasonlító beléptető script, az én életem lenne sokkal egyszerűbb.
6

bohóckodás

fchris82 · 2009. Már. 23. (H), 14.53
Amit te szeretnél, azt úgy is meg lehet oldani, ha a védett tartalmat egyszerűen a "lsdkfjwen" könyvtárba teszed. Ez semmiben nem különbözik attól, mint ha GET-tel egy paraméterlistát írogatsz az URL végére. Látszik, elolvasható és ami a legszomorúbb, hogy még HTTPS-t használva is látszik a hálózati forgalomban a teljes felhasználónév és jelszó páros...

Ergó nem biztonságos. Úgy gondolom, hogy van egy tartalom, amit védeni szeretnél. De amit csinálsz, az nem védelem. Olyan, mint egy kerítés nélküli kapu. Feltételezed, hogy majd mindenki a kapun keresztül akar majd bemenni. Aztán lesz, aki meg nem, csak simán elmegy mellette...

Ha már többen is azt mondják egy (szakmai) fórumban, hogy "ne csináld", akkor lehet, azon kéne elgondolkozni, hogy vmit te gondolsz rosszul és nem azt fejtegetni, hogy mi vagyunk a hülyék, hogy nem válaszolunk a kérdésedre és nem adjuk a nevünket egy ritka amatőr megoldáshoz. Ráadásul biztosra veszem, hogy van más megoldás is, de ahelyett, hogy leírnád a problémát, feltételezed, hogy az általad kigondolt elképzelés szent és sérthetetlen, azzal minden rendben van és kizárt dolog, hogy lenne egyáltalán más, nemhogy jobb megoldás is. Hogy idézzem:
Ahogy a téma leírásában megvan, csak ez a változat jöhet szóba nálam.

Én még mindig szívesen segítek, ha kifejted, hogy miért is ez a megoldás kell neked, amit nem neveznék megoldásnak...
7

https-en nem látható az URL

Hodicska Gergely · 2009. Már. 23. (H), 15.14
ami a legszomorúbb, hogy még HTTPS-t használva is látszik a hálózati forgalomban a teljes felhasználónév és jelszó páros
Ez HTTPS-nél kizárt, hogy így legyen, különben nem sok értelme lenne.
8

Valóban

fchris82 · 2009. Már. 24. (K), 00.36
Elnézést, ebben tévedtem, valóban nem látszik...
5

http auth miért nem jó?

SamY · 2009. Már. 23. (H), 08.09
Szia,

csak kíváncsiságból: miért nem jobb a user:pass##kukac##host.hu verzió? Mihez kellene ez neked pontosan?

u.i.: a HTTP auth esetén, csak egyszer kell elküldened, a böngésző ezután már megjegyzi és küldi magától HTTP fejlécben, s nem kell tovább adogatnod URL -ben (ami nem túl biztonságos), de gondolom ezzel tisztában vagy.
9

A user:pass##kukac##host.hu

szogedi · 2009. Már. 26. (Cs), 09.42
A user:pass##kukac##host.hu verzió azért nem jó, mert eléggé böngészőspecifikus, ergo nem mindegyikkel képes alapból együttműködni. Pl. IE alatt a windows registry módosítása nélkül nem is megy alapból. Ezért lenne szükségem a másik verzióra.

Tisztában vagyok vele, hogy számotokra nem tűnik biztonságosnak a dolog, de nálam pont erre van szükség ahhoz, hogy egy projektet befejezzek. Nem arra kérek senkit, hogy győzzön meg az eljárás helytelenségéről, hanem hogy aki tud megoldást, az segítsen. Ismerem ennek a hitelesítési eljárásnak a gyengeségeit, mégis erre van szükségem. Ami ennek a gyengesége, az a projekt másik elemei által pont az erőssége is egyben.
10

...

fchris82 · 2009. Már. 26. (Cs), 15.57
A legegyszerűbb eset, de ekkor minden linkbe bele kell tenni a felhasználónevet és jelszót. Session kezeléssel lehet megoldani, hogy ezt ne kelljen, de nem tudom eldönteni, hogy az neked megoldás-e, ugyanis ahhoz kell süti kezelés, és ha nem böngészőből hívogatod, hanem programból, akkor nem biztos, hogy van olyan. Ha nincs get-ként átadva user és password, akkor a login.php-ra irányít át. Azt is lehet, hogy ilyenkor csak kiír vmi hibaüzenetet...
<?php

$myusername = "myusername";
$mypassword = "mypassword";

if (!array_key_exists('user', $_GET) || !array_key_exists('password', $_GET) || $_GET["user"] != $myusername || $_GET["password"] != $mypassword) {
header("Location: http://vmi.hu/login.php");
die();
}

?>