Vra

Ek het 'n PHP script wat loop as 'n CGI program en die HTTP Authenticate kop kry geëet en spoeg uit. So ek wil graag 'n soort van VORM based geldigheidsverklaring implementeer. As 'n ekstra beperking, is daar geen databasis, sodat daar geen sessie data kan gestoor word.

Ek is baie oop vir 'n meester gebruikersnaam en wagwoord. Ek het net nodig om die aansoek van 'n indringer wat hierdie geloofsbriewe nie weet beskerm.

So hoe sou jy hierdie implementeer?

Cookies?

ek kon sy gedaante aan te bied en as dit bekragtig, kan ek terug stuur 'n koekie wat 'n gemors van die IP-adres kom geheime kode. Dan kan ek voorkom bladsye uit die lewering tensy die ding reg ontsyfer. Maar ek het geen idee hoe om te implementeer wat in PHP.

Was dit nuttig?

Oplossing

'n paar maniere waarop jy kan dit doen.

  1. htaccess - het jou webbediener hanteer beveiliging van die bladsye in vraag (nie presies cgi vorm alhoewel gebaseer).
  2. Gebruik koekies en 'n soort van hashing algoritme (md5 is goed genoeg) om die wagwoorde te stoor in 'n plat lêer waar elke lyn in die lêer is gebruikersnaam: passwordhash. Maak seker sout jou hashes vir ekstra sekuriteit vs reënboog tafels. (Hierdie metode is 'n bietjie naïef ... wees baie versigtig met sekuriteit as jy gaan hierdie roete)
  3. gebruik iets soos 'n sqlite databasis net om verifikasie te hanteer. SQLite is kompak en eenvoudig genoeg dat dit nog kan voldoen aan jou behoeftes, selfs as jy nie wil hê 'n groot db backend.

In teorie, jy kan ook slaan sessie data in 'n plat lêer, selfs al is jy kan nie 'n databasis.

Ander wenke

As jy tans gebruik te maak van Staaf, dan kan jy reeds 'n htpasswd lêer. As jy wil voortgaan met behulp van die lêer, maar oorskakel na die gebruik van vorm-gebaseerde verifikasie eerder as via die Verifieer kop, kan jy 'n PHP script gebruik om dieselfde htpasswd lêer gebruik en gebruik sessies om die verifikasie status in stand te hou.

'n vinnige Google-soektog vir PHP htpasswd openbaar hierdie bladsy met 'n PHP funksie om te kyk geloofsbriewe teen 'n htpasswd. Jy kan dit te integreer (as jy sessies stel om motor start het) met 'n paar kode soos volg:

// At the top of your 'private' page(s):
if($_SESSION['authenticated'] !== TRUE) {
    header('Location: /login.php');
    die();
}

// the target of the POST form from login.php
if(http_authenticate($_POST['username'], $_POST['password']))
    $_SESSION['authenticated'] = TRUE;

Wil jy regtig 'n vorm nodig? Maak nie saak wat jy doen, jy beperk deur die gebruikersnaam en wagwoord wat bekend. As hulle dit weet, kry hulle jou magie koekie wat hulle kan. Jy wil om te verhoed dat die sien van die bladsye as hulle nie die geheim ken, en basiese magtiging dit doen, is maklik om op te rig, en nie 'n baie werk nodig van jou kant.

Wil jy regtig nodig het om die magtiging kop te sien of die webbediener sorg vir die toegangsbeheer vir jou?

Ook, as jy die verskaffing van die aansoek om 'n bekende lys van mense (eerder as die publiek), kan jy die web-bediener-gebaseerde toegang te verskaf oor ander faktore, soos die inkomende IP-adres, kliënt sertifikate, en baie ander dinge wat 'n saak van opset eerder as ontwikkeling is. As jy verduidelik jou sekuriteit beperkinge, kan ons in staat wees om 'n beter oplossing bied.

Sterkte,:)

... Oor sout, voeg die gebruikersnaam in jou hash sout sal iemand wat jou sout weet te voorkom en het toegang tot jou wagwoord lêer na 'n reënboog tafel skryf en kraak aantal wagwoord vir jou gebruikers.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top