Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][JavaScript]Zabezpieczenie formularza
dark_root
post
Post #1





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


Posiadam na stronie formularz, w którym w hidden są przesyłane dane, których internauta nie powinien widzieć. Jak skutecznie zabespieczyć formularz, żeby niektóre przesyłane w nim informacje, które w zasadzie są stałymi nie były widoczne w podglądzie kodu źródłowego lub jak skótecznie zabespieczyć podglądanie skryptu?
Go to the top of the page
+Quote Post
k_@_m_i_l
post
Post #2





Grupa: Zarejestrowani
Postów: 349
Pomógł: 72
Dołączył: 22.01.2008
Skąd: Wadowice/Oświęcim

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


Zamiast ukrytych pól,lepiej zastosuj sesje jeżeli chcesz żeby użytkownik nie widział tych danych.
Go to the top of the page
+Quote Post
bełdzio
post
Post #3





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


skoro są w zasadzie stałymi to dlaczego nie trzymać ich tylko po stronie serwera?
Go to the top of the page
+Quote Post
ja_fryta
post
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 25.07.2008

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


najlepiej jest zrobic tak jak ci pisza koledzy wyzej ale jezeli dane te musza byc trzymane po stronie klienta to mozesz je jeszcze wlozyc do ciasteczka
Go to the top of the page
+Quote Post
dark_root
post
Post #5





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


A jak użyć sesji, żeby użytkownik nie widział w kodzie strony tych ważnych i zarazem niezbędnych dla niego danych?
Kod
<?php
session_start();
$_SESSION['123']=123456;
$_SESSION['456']=123456;
?>
<form action="<?=$_GET['ff']?>" method="post">
Login:<input type=text name=login value="<?=$_SESSION['123']?>">
Hasło:<input type=password name=pass value="<?=$_SESSION['456']?>">
<input name="dl.start" value=wyślij type="submit">
</form>

Zrobiłem coś takiego, ale jak można się domyśleć w kodzie było widać dane. Jak ich użyć i jednocześnie nie dać ich poznać internaucie za pomocą sesji?

Ten post edytował dark_root 26.07.2008, 10:34:17
Go to the top of the page
+Quote Post
Shili
post
Post #6





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Jasne, że było widać dane, bo wpisane są jako wartości formularza. Jeśli nie chcesz dać ich poznać użytkownikowi, to zainicjuj wartością zmienną sesyjną:
  1. <?php
  2. $_SESSION['tajne'] = "tajne dane";
  3. ?>

I nie rób z tym na stronie formularza nic więcej. Dopiero na stronie do której prowadzi formularz odczytaj sobie tą zmienną sesyjną i tyle.
Go to the top of the page
+Quote Post
dark_root
post
Post #7





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


Zrobiłem coś takiego, ale nie działa:
index.php
Kod
<form action="premium.php" method="GET">
<?php
$_SESSION['tajne'] = "tajnedane";
$_SESSION['dane'] = "tajnedane";
?>
<input type=text name=ff><br>
<input type=submit value="Wyślij">
</form>

premium.php
Kod
<form action="<?=$_GET['ff']?>" method="post">
Login:<input type=text name=login value="<?=$_SESSION['tajne']?>">
Hasło:<input type=password name=pass value="<?=$_SESSION['dane']?>">
<input name="dl.start" value=wyślij type="submit">
</form>

Gdzie wkradł się błąd?
Go to the top of the page
+Quote Post
ShadowD
post
Post #8





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Zresztą piszesz, że są to stałe a mam wrażenie, że chcesz w nich trzymać hasło i nick...

Napisz o co ci chodzi bo z tego kodu nic nie można wywnioskować...

Człowiek całe życie się uczy... ;p

Ten post edytował ShadowD 26.07.2008, 11:14:53
Go to the top of the page
+Quote Post
bełdzio
post
Post #9





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


jesli wkladasz dane do sesji to nie echuj ich nigdzie na stronie, po prostu korzytaj z tablicy $_SESSION

poczytaj o sesjach w manualu

//

@ShadowD: <?= to skrócona wersja <? echo

Ten post edytował bełdzio 26.07.2008, 11:12:46
Go to the top of the page
+Quote Post
dark_root
post
Post #10





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


Login i hasło są to stałe. Mam konto na pewnej popularnej stronie, które nieźle kosztuje i postanowiłem się nim podzielić. Jednak chcę się zabezpieczyć przed ewentualną kradzieżą konta. W tym celu te wszystkie kombinacje.
Go to the top of the page
+Quote Post
Shili
post
Post #11





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Zapisz sobie w stałych gdzieś w pliku login i hasło.
Umieść formularz tylko z buttonem zaloguj i kod

  1. <?php
  2. if(isset($name_buttona_zaloguj)) {
  3. // skorzystaj tutaj z tych stałych zdefiniowanych wcześniej, żeby się zalogować na
     konto
  4.  }
  5. ?>

O to Ci chodziło?
Go to the top of the page
+Quote Post
ShadowD
post
Post #12





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Aaaaa, chcesz zrobić formularz do logowania... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Za pomocą przycisku loguj bez podawania hasła ma się przekierowywać na inną stronę.

Możesz jedynie zakodować hasło w js i przy klikaniu na przycisk wstawiać go inaczej tego nie zrobisz, a bynajmniej ja nie znam innego sposobu...
Go to the top of the page
+Quote Post
dark_root
post
Post #13





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


Z tego co zrozumiałem chodzi CI o to, żeby passy pobierać z pliku. Dobry pomysł tylko nie wiem jak takie coś wykonać. Możesz podac przykładowy gotowy kod?
ShadowD a można by ustalić własne kodowanie np. a=@q1 i zapisać jakoś w php, żeby przeglądarka tego nie wyświetliła i nastepnie wpisać w login=@q1@q1@q1@q1@q1 a naprawdę wpisywało by aaaaa?

Ten post edytował dark_root 26.07.2008, 12:09:59
Go to the top of the page
+Quote Post
Shili
post
Post #14





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Bogowie... Pokombinowałeś sam? Jak nie to czas najwyższy zacząć wreszcie!
Najprościej:

plik bla.php
  1. <?php
  2. $login='tajny login';
  3. $haslo='tajne hasło';
  4. ?>


plik, gdzie to odczytujesz
  1. <?php
  2. include ('bla.php');
  3. ?>
Go to the top of the page
+Quote Post
dark_root
post
Post #15





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


Niestety ten sposób nie zakryje passów. Nadal będą one widoczne w skrypcie strony.
Go to the top of the page
+Quote Post
Shili
post
Post #16





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Nie będą. W jaki niby sposób miałyby być widoczne?!
Go to the top of the page
+Quote Post
dark_root
post
Post #17





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


bla.php
Kod
<?php
$login='aaaaaa';
$haslo='aaaaaa';
?>

aa.php
Kod
<?php
include ('bla.php');
?>
<form action="<?=$_GET['ff']?>" method="post">
Login:<input type=text name=login value="<?=$login ?>">
Hasło:<input type=password name=pass value="<?=$haslo ?>">
<input name="dl.start" value=wyślij type="submit">
</form>


Efekt widać tutaj
Hasło i login są widoczne ponieważ muszę je wpisać w formularz, żeby pomyślnie się zalogować.
Go to the top of the page
+Quote Post
Shili
post
Post #18





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Nie musisz, napisałam wyraźnie że nie musisz.

Zrób formularz z samym przyciskiem zaloguj. Tylko i wyłącznie. A po kliknięciu skorzystaj ze zmiennych ustawionych wcześniej.
Go to the top of the page
+Quote Post
dark_root
post
Post #19





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


Z przyjemnością postawię ci "pomógł" jednak nie działa. Nie wiem, czy zrozumiałeś mnie dobrze, ale strona docelowa, na którą chcę się zalogować nie jest moja więc nie mogę tam dodać include ('bla.php');.
Formularz całkowicie narażony na przejęcie passów przesyłą dane i loguje
Kod
<form action="http://jakasstrona.pl" method="post">
<input name="l" value="2602990" type="hidden">
<input name="p" value="%61%61%61%61%61%61" type="hidden">
<input name="dl.start" value="login" type="submit">
</form>

<script Language="Javascript">  
javascript:document.all['dl.start'].click()
</script>

Natomiast formularz wykorzystujący include nie loguje
Kod
<?php
include ('bla.php');
?>
<form action="http://rs275.<?=$_POST['ff']?>" method="post">
<input name="dl.start" value=wyślij type="submit">
</form>
<script Language="Javascript">
javascript:document.all['dl.start'].click()
</script>

Słyszałem, iż dane w formularzu można przesłać tak jak ja chce za pomocą curl wiec poszukam jakiegoś dobrago darmowego serwera, który obsługuje tą bibliotekę. Znacie jakieś poza ovh?

Ten post edytował dark_root 26.07.2008, 16:38:14
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: 15.09.2025 - 20:35