Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]HTML ZABEZPIECZONE HASŁEM (JavaScript)
Forum PHP.pl > Forum > Przedszkole
NorQ
Witam forumowicze, mam problem odnośnie do pewnego kodu HTML

Otóż kiedy wchodzę na moją stronę zabezpieczoną hasłem KLIK pokazuję mi się pole na w które trzeba wpisać hasło --> "norq"

Kiedy zostanie podane poprawne hasło wyświetli się komunikat "Podane hasło jest poprawne!" oraz następnie ukaże mi się treść strony,

ale gdy hasło zostanie podane nieprawidłowe wyświetli mi się komunikat "Podane hasło jest błędne!" ale w tym problem że i tak mi się ukaże treść strony,

Chodzi mi o efekt, gdy zostanie podane nieprawidłowe hasło, zamiast ujawniać treść strony ma przekierować do punktu w którym trzeba wpisać je jeszcze raz.

Niżej ujawniam kod strony:

Kod
<html lang="pl">
<head>
<title>kurshtml</title>
<script language="JavaScript">
<!--
var password = prompt("Podaj hasło:");
if (password == "norq") //hasło obecne
{
alert("Podane hasło jest poprawne!");
} else {
alert("Podane hasło jest błędne!");
java script:history.back()
}
-->
</script>
</head>
<body>
<center>Skrypt PHP PASS 1.0 by NorQ(wersja testowa)</center> //Treść strony
</body>
</html>
phpion
Pomijając fakt, że Twoje zabezpieczenie to żadne zabezpieczenie (do przejścia w 2 sekundy) to po błędnie podanym haśle przekieruj użytkownika na inną stronę:
  1. document.location.href = 'http://google.pl';


PS: I zmień nazwę z PHP PASS na JS PASS bo z PHP to nie ma nic wspólnego.
PS2: Przenoszę do przedszkola bo na PHP to ciut za mało wink.gif
NorQ
Nadpisałem twój kod z linijką
Kod
java script:history.back()




A zapomniałem dodać słowo "Dzięki!" Lkingsmiley.png
phpion
Teraz zauważyłem, że edytowałeś swój pierwszy post. Jako swój kod JS podaj tylko to:
  1. do {
  2. password = prompt("Podaj hasło:");
  3. } while (password != "norq");
NorQ
O.o dzięki to zaoszczędza kod... ale to okno można chyba ominąć w niektórych przeglądarkach... ;{
elmozaur
wystarczy w dowolnej przegladarce wcisnac pokaz kod i juz wiemy jakie masz haslo
zrob to w php i sesji
NorQ
Ej, a czy można to okno hasła edytować na takie co niema opcji omijaniu ? haha.gif


@EDIT

Na takim jednym forum znalazłem taki dobry kod haha.gif(posiada funkcję ukrywania hasła i linku)

Kod
<?php

//wysyłanie nagłówka http przed ewentualnymi informacjami o błędach dot. zmiennych z konfiguracji
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Tue, 01 Jan 1980 00:00:00 GMT');

/*

    Ochrona hasłem
    --------------
    >v1.1
    --------------
    >changelog:
    1.1 -zmiana domyślnej wartości $nazwa_pliku z $PHP_SELF na $_SERVER['PHP_SELF']
        -drobne uzupełnienia w jakże obfitej dokumentacji;)
            -dodanie zabezpieczenia przed cache'owaniem strony
            -dodanie przekierowania przez nagłówek HTTP jako pierwszego w kolejności
    --------------
    >Problemy? Sugestie?
    yahoo89@o2.pl
    --------------
    >Copyright:
    "Róbta co chceta"

*/

//Konfiguracja
//------------
//Kilka podstawowych opcji.
//
//1. Nazwa obecnego pliku
//   Żeby wysłać hasło na serwer w celu stwierdzenia, czy jest ono
//   poprawne, potrzebna jest nazwa pliku, który aktualnie edytujesz. PHP
//   potrafi samodzielnie podać tę nazwę, ale taka możliwość może zostać
//   wyłączona przez administratora serwera. Zatem, jeżeli po wpisaniu
//   w formularzu hasła i wciśnięciu klawisza [Enter] pojawi się błąd
//   (najprawdopodobniej HTTP 404) wpisz w poniższej linii nazwę obecnie
//   edytowaniego pliku, np. $nazwa_pliku='haslo.php';
$nazwa_pliku=$_SERVER['PHP_SELF'];
//2. Treść nagłówka
//   Tutaj należy wpisać treść nagłówka, który pojawi się nad polem do
//   wpisywania hasła, np. $tresc_naglowka="Wprowadź hasło:";
$tresc_naglowka="Podaj hasło:";
//3. Link do strony docelowej
//   Tutaj należy podać link* do strony, do której użytkownik zostanie
//   przekierowany po podaniu hasła (razem z nazwą protokołu,
//   tj. z "http://"), np. $link="http://www.domena.com/album";
//
//   *patrz: Słów kilka o bezpieczeństwie
$link="http://radio-drive.cba.pl";
//4. Komunikat w przypadku błędnego hasła
//   Tutaj należy podać treść komunikatu, jaki zostanie wyświetlony po
//   wprowadzeniu błędnego hasła, np. $komunikat_bledu="Złe hasło!";
$komunikat_bledu="Złe hasło! Spróbuj jeszcze raz:";
//5. Poprawne hasła
//   Lista poprawnych haseł w formacie $hasla[]="hasło1";
//   Jeżeli ma być kilka poprawnych haseł wpisz je w nowych liniach, tj.
//   $hasla[]="poprawne hasło 1";
//   $hasla[]="poprawne hasło 2":
//   $hasla[]="poprawne hasło 3";
//   itd.
$hasla[]="pawian31";
//6. Ukrywanie hasła
//   Wpisz $ukrywanie_hasla=false, jeżeli w polu przeznaczonym na hasło
//   ma się pojawić dokładnie to, co wpisałeś lub $ukrywanie_hasla=true;
//   jeżeli hasło w tym polu ma być zastąpione przez *** (tzn. zostanie
//   użyty znacznik 'input' typu 'text' (dla false) lub typu 'password'
//   (dla true));
$ukrywanie_hasla=true;
//
//Słów kilka o bezpieczeństwie.
//
//Ten skrypt działa na takiej zasadzie, że po podaniu hasła udostępnia
//link i dokonuje przekierowania. Dlatego dobrze by było umieścić stronę
//docelową w jakimś katalogu o losowej nazwie, tj. jeżeli strona
//chroniona znajdowała by się pod adresem
//http://www.domena.com/zdjęcia/index.htm, to, nie znając
//adresu, można się łatwo domyślić, gdzie się ona znajduje i na nic
//będzie takie zabezpieczenie, natomiast jeżeli strona będzie się
//znajdowała pod adresem www.domena.com/4dc6hba89d8070ef/index.htm to
//nie tak łatwo na nią wejść nie znając adresu i nasze małe
//zabezpieczenie może przynieść jakieś tam efekty.
//
//v1.1:
//W skrypcie znalazło się zabezpieczenie przed indeksowaniem strony
//przez boty wyszukiwarek internetowych oraz cache'owaniem przez
//przeglądarki. Dotyczy to tak strony z prośbą o podanie hasła, jak
//i strony generowanej po jego podaniu. Zabezpieczenie jest
//realizowanie poprzez odpowiednie modyfikacje treści sekcji 'meta'
//oraz nagłówków http obydwu stron. Niemniej jednak modyfikacje te są
//tylko sugestią dla botów, serwerów proxy i przeglądarek, i nie są
//w stanie zabronić im gromadzenia treści tej strony. Może to być ważne
//w przypadku gdy w historii przeglądarki zostanie zapisana strona
//wygenerowana po podaniu przwidłowego hasła (tj. ta z linkiem do
//chronionego zasobu)
//-------------------
//Koniec konfiguracji

?>

<?php

if (isset($_POST['haslo']))
{
    if (in_array($_POST['haslo'], $hasla))
    {
        //nagłówek przy przekierowaniu
        header('Cache-Control: no-cache, must-revalidate');
        header('Expires: Tue, 01 Jan 1980 00:00:00 GMT');
        header("Location: $link");
        
        //przekierowanie
        echo("<html>\r\n
              <head>\r\n\t
                    <meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-2\">
                    <meta http-equiv=\"pragma\" content=\"no-cache\">
                    <meta http-equiv=\"expires\" content=\"Tue, 01 Jan 1980 00:00:00 GMT\">
                    <meta http-equiv=\"cache-control\" content=\"no-cache\">
                    <meta name=\"robots\" content=\"none\">
                    <meta name=\"googlebot\" content=\"noarchive\">
                    <meta http-equiv=\"refresh\" content=\"3; url=$link\">\r\n\t
                    <title>Przekierowanie</title>\r\n
              </head>\r\n
              <body>\r\n
              <p>Trwa przekierowanie... Jeżeli przeglądarka nie przekieruje cię automatycznie, kliknij <a href=\"$link\">tu</a>.</p>\r\n
              </body>\r\n
              </html>");
        exit;
    } else {
        //komunikat błędu
        $komunikat=$komunikat_bledu;
    }
} else {
    //komunikat podania hasła
    $komunikat=$tresc_naglowka;
}

?>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="expires" content="Tue, 01 Jan 1980 00:00:00 GMT">
    <meta http-equiv="cache-control" content="no-cache">
    <meta name="robots" content="none">
    <meta name="googlebot" content="noarchive">
    <title>Hasło</title>
</head>
<body>

<form action="<?php echo($nazwa_pliku) ?>" method="post" accept-charset="iso-8859-2">
    <h2 align="center">
        <br><br>
        <?php echo($komunikat); ?>
        <br><br>
        <input type="<?php if ($ukrywanie_hasla) {echo('password');} else {echo('text');} ?>" name="haslo" size="30">
    </h2>
</form>

<script type="text/javascript">
<!--

    //co by na polu do wpisywania hasła automatycznie ustawiał się focus
    document.forms[0].elements[0].focus();

-->
</script>

</body>
</html>


Ej, a czy by wypaliło zabezpieczenie hasła w kodzie ?
Mam namyśli includowanie go czy coś w tym stylu ...
I wtedy nadać odpowiedni CHMOD ?

Nie wiem czy wypali ... haha.gif

Phion, kod który skróciłeś:
  1. do {
  2. password = prompt("Podaj hasło:");
  3. } while (password != "norq");

Nie jest bardziej bezpieczny, teraz samo pokazuje opcję obejścia po błędnie wpisanym haśle.
zostaję przy:
  1. var password = prompt("Podaj hasło:");
  2. if (password == "norq")
  3. {
  4. alert("Podane hasło jest poprawne!");
  5. } else {
  6. alert("Podane hasło jest niepoprawne!");
  7. document.location.href = 'index.html';
  8. }


;D
CuteOne
eee ale co to za zabezpieczenie skoro w 5 sekund, można odkryć twoje supertajne * n+1 / poufne hasło?
lobopol
Zabezpieczenie js to nie jest zabezpieczenie, raz, że każdy może zobaczyć źródło strony, dwa każdy może zmodyfikować kod js podczas przeglądania strony, trzy każdy może wyłączyć js.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.