Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zaprzęgnięcie ssl https
biocian
post 3.02.2008, 14:29:51
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.02.2008

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


Witam wszystkich forumowiczów. Po raz pierwszy zdecydowałem się zadać pytanie na forum, nie mam dużego doświadczenia, więc proszę o wyrozumiałość snitch.gif .
Jak napisałem w tytule chciałbym zaprzęgnąć bezpieczniejsze metody przesyłania danych w moich skryptach php. Zależy mi, aby dane wysyłane z formularza były szyfrowane.
Szukałem trochę w internecie i znalazłem pare rozwiązań, ale niestety nie potrafię w tym przypadku zintegrować tego z moimi "wypocinami" winksmiley.jpg .

Oto mój przykładowy plik formularza (pierwszy raz coś dodaję, mój plik to php mieszane z html, nie wiem czy dobrze to tu wstawię)
  1. <?php
  2. require_once './config.php';
  3. ?>
  4. <head></head>
  5. <body>
  6. <?php
  7.  
  8. $message='';
  9. if(isset($_POST['submit']))
  10. {
  11. $message='';
  12. if((strlen($_POST['telefon']) && strlen($_POST['oferta']))==0)
  13. {
  14. $message.="Nie wypełniłeś wymaganych pól";
  15. }
  16.  
  17. // musiałem skrócić post bo forum nie chciało przyjąć z powodu długości
  18. // tutaj była walidacja danych z formularza
  19.  
  20. if ($message=='')
  21. {
  22. $sql  = "INSERT INTO ogloszenia (data_dodania,telefon,email,oferta,logo) VALUES (NOW(),'$t','$o','$content')";
  23. $result = dbQuery($sql) or die('error' . mysql_error());
  24. echo "<meta http-equiv=refresh content=0;URL=./ogloszenia.php>";
  25. }
  26. else
  27. {
  28. require_once 'incl/h1.php';
  29. ?>
  30. <table>
  31. <?php
  32. require_once 'incl/h2.php';
  33. ?>
  34. <td>
  35. <table>
  36. <tr>
  37. <td>
  38. <form method="post" enctype="multipart/form-data">
  39. <table>
  40. <tr>
  41. <td colspan=2>
  42. <? echo $message; ?>
  43. </td>
  44. </tr>
  45. <tr>
  46. <td>TELEFON:</td><td><input name="telefon" value="<?php if (isset($_POST['telefon'])) echo $_POST['telefon']; ?>"></td>
  47. </tr>
  48. <tr>
  49. <td>TREŚĆ OGŁOSZENIA:</td><td><textarea name="oferta" rows="4" cols="45"><?php if (isset($_POST['oferta'])) echo $_POST['oferta']; ?></textarea></td>
  50. </tr>
  51. <tr>
  52. <td>ZDJĘCIE:</td><td><input type="hidden" name="MAX_FILE_SIZE" value="30720"><input type="file" name="nazwa" /><? print_r($_FILES['nazwa']); ?></td>
  53. </tr>
  54. <tr>
  55. <td colspan=2>
  56. <img src="image.php">
  57. <input type="text" name="pass" size="8">
  58. <br>wpisz hasło z obrazka
  59. </td>
  60. </tr>
  61. </table>
  62. <input type="submit" name="submit" value="wyślij">
  63. </form>
  64. </td>
  65. </tr>
  66. </table>
  67. <?
  68. require_once 'incl/f.php';
  69. }
  70. }
  71.  
  72. // jeśli przycisk nie został wciśnięty
  73. else
  74. {
  75. require_once 'incl/h1.php';
  76. ?>
  77. <table>
  78. <?php
  79. require_once 'incl/h2.php';
  80. ?>
  81. <td>
  82. <table>
  83. <tr>
  84. <td>
  85. <form method="post" enctype="multipart/form-data">
  86. <table>
  87. <tr>
  88. <td>TELEFON:</td><td><input name="telefon" value="<?php if (isset($_POST['telefon'])) echo $_POST['telefon']; ?>"></td>
  89. </tr>
  90.  <tr>
  91. <td>TREŚĆ OGŁOSZENIA:</td><td><textarea name="oferta" rows="4" cols="45"><?php if (isset($_POST['oferta'])) echo $_POST['oferta']; ?></textarea></td>
  92. </tr>
  93. <tr>
  94. <td>ZDJĘCIE:</td><td><input type="hidden" name="MAX_FILE_SIZE" value="30720"><input type="file" name="nazwa" /><? print_r($_FILES['nazwa']); ?></td>
  95. </tr>
  96. <tr>
  97. <td colspan=2>
  98. <img src="image.php">
  99. <input type="text" name="pass" size="8">
  100. <br>wpisz hasło z obrazka
  101. </td>
  102. </tr>
  103. </table>
  104. </h1>
  105. <input type="submit" name="submit" value="wyślij">
  106. </form>
  107. </td>
  108. </tr>
  109. </table>
  110. <?php
  111. require_once 'incl/f.php';
  112. }
  113. ?>
  114. // ******** koniec formularza
  115.  
  116. Użytkownik wypełnia formularz i naciska przycisk wyślij i wtedy dane powinny pow
    ędrować szyfrowane.
  117.  
  118. znalazłem rozwiązania, np. : 
  119.  
  120.  <?php
  121. //link do tego znalazłem własnie na tym forum
  122.  
  123. $sock = fsockopen("ssl://secure.example.com/", 443, $errno, $errstr, 30);
  124. if (!$sock) die("$errstr ($errno)\n");
  125.  
  126. $data = "foo=" . urlencode("Value for Foo") . "&bar=" . urlencode("Value for Bar");
  127.  
  128. fwrite($sock, "POST /form_action.php HTTP/1.0r\n");
  129. fwrite($sock, "Host: secure.example.com/r\n");
  130. fwrite($sock, "Content-type: application/x-www-form-urlencodedr\n");
  131. fwrite($sock, "Content-length: " . strlen($data) . "r\n");
  132. fwrite($sock, "Accept: */*r\n");
  133. fwrite($sock, "r\n");
  134. fwrite($sock, "$datar\n");
  135. fwrite($sock, "r\n");
  136.  
  137. $headers = "";
  138. while ($str = trim(fgets($sock, 4096)))
  139. $headers .= "$str\n";
  140.  
  141. echo "\n";
  142.  
  143. $body = "";
  144. while (!feof($sock))
  145. $body .= fgets($sock, 4096);
  146.  
  147. fclose($sock);
  148. ?>
  149. // **** koniec pliku

Nie rozumiem w przypadku mojego kodu w którym momencie (przed czy po walidacji) mam wysłać dane za pomocą powyższego rozwiązania i co znajdzie się w zmiennej $body? Chyba nie całe <body> pliku formularza?

Wiem że to nie jest najlepsze, najnowsze rozwiązanie, ale zależy mi na czymkolwiek bezpieczniejszym do http smile.gif .

Poproszę o pomoc w zrozumieniu co i kiedy wysyłam oraz co i kiedy odbieram jeśli można na przykładzie mojego pliku. (Chyba że totalnie się nie nadaje biggrin.gif - bo że nie jest przykładem dobrego programowania to wiem laugh.gif ).

Pozdrawiam, z góry dziękuję.

(przepraszam za brak wcięć w kodzie - musiałem skrócić skrypty do minimum bo był za długi post)
Powód edycji: dodałem bbcode (cysiaczek)
Go to the top of the page
+Quote Post
GrayHat
post 3.02.2008, 22:02:14
Post #2





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

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


Witaj.
Połączenie jest szyfrowane jeżeli domena w której sie znajdujesz posiada certyfikat SSL.
Wtedy wystarczy otworzyć stronę z przedrostkiem https:// i już cała zawartość i wszystkie przesyłane dane są szyfrowane.


--------------------
*Note: No animals were killed durning the construction of this post.
Go to the top of the page
+Quote Post
biocian
post 4.02.2008, 00:51:29
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.02.2008

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


Dziękuję bardzo za odpowiedź.

W sumie i domena ma taki certyfikat i ja tak właśnie powpisywałem linki do formularzy, https zamiast http.
Moja Mozilla raz tylko wspomniała coś o certyfikatach na tej stronie, obecnie jak wchodzę przez https to jest ikona zamkniętej kłódki.
Natomiast w najnowszym internet explorerze co chwila (przy przechodzeniu ze strony na stronę bądź po naciśnięciu przycisku) wyskakuje ostrzeżenie, że strona zawiera elementy zarówno bezpieczne jak i niebezpieczne i czy chcę wyświetlić te niebezpieczne.
Czy da się coś z tym zrobić? (tu kłódka też jest zamknięta).

Jeszcze raz dziękuję za odpowiedź
Go to the top of the page
+Quote Post
GrayHat
post 4.02.2008, 02:07:58
Post #4





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

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


Jeżeli jesteśmy w trakcie połączenia bezpiecznego, to wszystkie iframy, obrazki, style.css, skrypty js itd itd (ogolnie pliki które są ładowane podczas połączenia) powinny być ładowane też przez https://
czyli zamiast:
  1. <img src="http://onet.pl/logo.gif" />

to:
  1. <img src="https://onet.logo.gif" />


Ten post edytował GrayHat 4.02.2008, 02:08:34


--------------------
*Note: No animals were killed durning the construction of this post.
Go to the top of the page
+Quote Post
biocian
post 4.02.2008, 13:59:14
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.02.2008

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


exclamation.gif!

Dzięki GrayHat Rkingsmiley.png

exclamation.gif!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 01:22