Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]HTML ZABEZPIECZONE HASŁEM (JavaScript)
NorQ
post
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

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


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>


Ten post edytował phpion 15.07.2011, 13:59:28
Powód edycji: [phpion]: Zmieniłem tag.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
NorQ
post
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

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


Nadpisałem twój kod z linijką
Kod
java script:history.back()




A zapomniałem dodać słowo "Dzięki!" (IMG:style_emoticons/default/Lkingsmiley.png)

Ten post edytował NorQ 15.07.2011, 13:51:02
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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");
Go to the top of the page
+Quote Post
NorQ
post
Post #5





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

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


O.o dzięki to zaoszczędza kod... ale to okno można chyba ominąć w niektórych przeglądarkach... ;{
Go to the top of the page
+Quote Post
elmozaur
post
Post #6





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


wystarczy w dowolnej przegladarce wcisnac pokaz kod i juz wiemy jakie masz haslo
zrob to w php i sesji
Go to the top of the page
+Quote Post
NorQ
post
Post #7





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 15.07.2011

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


Ej, a czy można to okno hasła edytować na takie co niema opcji omijaniu ? (IMG:style_emoticons/default/haha.gif)


@EDIT

Na takim jednym forum znalazłem taki dobry kod (IMG:style_emoticons/default/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 ... (IMG:style_emoticons/default/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

Ten post edytował NorQ 15.07.2011, 14:11:56
Go to the top of the page
+Quote Post
CuteOne
post
Post #8





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


eee ale co to za zabezpieczenie skoro w 5 sekund, można odkryć twoje supertajne * n+1 / poufne hasło?
Go to the top of the page
+Quote Post
lobopol
post
Post #9





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


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.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 03:54