Witam.

Zastanawiam sie nad najlepszym rozwiazaniem bezpiecznego przesylania danych, glownie na mysli mam logowanie, ktore musze zrealizowac w zew. programie na PC. Pisze w VB2008 i nie moge polaczyc sie bezposrednioz z baza rowniez z wzgledow bezpieczenstwa, takie polaczenia z zew. sa zazwyczaj blokowane. Dane jakie musze przeslac to login, haslo , tutaj najbardziej mi zalezy na bezpieczenstwie, a potem kilka innych, ale jednak mniej waznych z wzgledow bezpieczenstwa, wartosci tekstowych. Na stronie loguje sie loginem i haslem, haslo w md5 i porownanie z baza. Wszytskie dane aktualnie wysylane sa za pomoca metody POST, ktora nie jest zla. Narazie skrypt zapewnia mi jedynie komunikacje do testow. Generujac odpowiednie zapytania, otrzymuje odpowiednie wyniki, ktore pobieram i wyswietlam w programie. Zapewne bede chcial dodatkowo generowac jakis klucz potwierdzajacy, albo w programie, albo przypisany do konkretnego usera, w celu 1. statystyki 2. bezpieczenstwa. Niektore zadania, takie jak np. wyslanie zmiennej $greetings mozliwe beda tylko po zalogowaniu, tutaj albo cookie, czy jakas sesja, albo kazdorazowe przesylanie hasla, ktore i tak bedzie trzymane w programie, w jakis sposob zakodowane.

W jaki sposob zrealizowac najbezpieczniej takie zadania, jednoczesnie nie martwiac sie o wstrzykiwanie zapytan SQL, i inne niebezpieczenstwa.

Aktualny kod skryptu
  1. <?php
  2. require "connection.php"; //SQL connection file
  3. connection();
  4. include("stats.php");
  5.  
  6. $login = $_POST['login']; //login and password
  7. $list = $_POST['list']; // song list
  8. $program = $_POST['program']; // program and song status
  9. $greetings = $_POST['greetings']; // greetings
  10. $schedule = $_POST['schedule']; // schedule
  11.  
  12. //login
  13. $username = $_POST['username'];
  14. $password = $_POST['password'];
  15.  
  16. //song list
  17. $date = $_POST['date'];
  18. $presenter = $_POST['presenter'];
  19. $song = $_POST['song'];
  20.  
  21. //status
  22. // $presenter = $_POST['presenter'];
  23. $program = $_POST['program'];
  24.  
  25. // greetings
  26. // $username = $_POST['username'];
  27. // $id_greetings
  28. $id_user = $_POST['id_user'];
  29. $time = $_POST['time'];
  30. $greetingstext = $_POST['greetingstext'];
  31. $status = True;
  32.  
  33. //firefox
  34. $firefox = $_GET['firefox'];
  35.  
  36. //schedule
  37.  
  38.  
  39. /*
  40.  
  41. $firefox = "1";
  42. $username = "user1";
  43. $password = "pass1";
  44.  
  45. $list = "1";
  46. $date ="2011-03-03";
  47.  
  48. $schedule = "1";
  49. $program = "1";*/
  50.  
  51.  
  52.  
  53.  
  54. if (!empty($login)) {
  55. $query = mysql_query("SELECT * FROM user WHERE username='$username' AND password='$password'")
  56. or die('Query error');
  57. if(mysql_num_rows($query) > 0)
  58. while($l = mysql_fetch_assoc($query)) {
  59. echo "ID: ".$l['id_user']."<br />";
  60. echo "User: ".$l['username']."<br />";
  61. echo "Password: ".$l['password']."<br />";
  62. }
  63. }
  64. elseif (!empty($list)) {
  65. $query = mysql_query("SELECT * FROM song WHERE date='$date'")
  66. or die('Query error');
  67. if(mysql_num_rows($query) > 0)
  68. while($l = mysql_fetch_assoc($query)) {
  69. $i += 1;
  70.  
  71. echo "Number: ".$i."<br />";
  72. echo "Presenter: ".$l['presenter']."<br />";
  73. echo "Song: ".$l['song']."<br />";
  74. echo "<br />";
  75. }
  76. }
  77. elseif (!empty($program)) {
  78. echo "Presenter: ".$sc[template1]."<br />";
  79. echo "Song: ".$text."<br />";
  80. echo "Quality: ".$bit1."<br />";
  81. echo "Lisen: ".$sc[template3]."<br />";
  82. echo "Max: ".$max1."<br />";
  83. // echo "Rekord: ".$peak1."<br />";
  84. }
  85. elseif (!empty($firefox)) {
  86. echo "Gra: ".$sc[template1]." Utwor: ".$text.".";
  87. }
  88. elseif (!empty($greetings)) {
  89. $query = mysql_query("INSERT INTO greetings SET id_user='$id_user', time='$time', greetings='$greetings', status='$status'")
  90. or die('Query error');
  91. if($query) echo "Add record.";
  92. else echo "Error.";
  93. }
  94. elseif (!empty($schedule)) {
  95. $query = mysql_query("SELECT * FROM schedule")
  96. or die('Query error');
  97. if(mysql_num_rows($query) > 0)
  98. while($s = mysql_fetch_assoc($query)) {
  99. $i += 1;
  100.  
  101. echo "Id: ".$s['id_schedule']."<br />";
  102. echo "Start: ".$s['start']."<br />";
  103. echo "Finish: ".$s['finish']."<br />";
  104. echo "Presenter: ".$s['presenter']."<br />";
  105. echo "Name: ".$s['name']."<br />";
  106. echo "Link: ".$s['link']."<br />";
  107. echo "<br />";
  108. }
  109. }
  110. else {
  111. echo "No data";
  112. }
  113. ?>
  114.