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. na razie 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 [i]$greetings[/i] 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
<?php
require "connection.php"; //SQL connection file
connection();
include("stats.php");
$login = $_POST['login']; //login and password
$list = $_POST['list']; // song list
$program = $_POST['program']; // program and song status
$greetings = $_POST['greetings']; // greetings
$schedule = $_POST['schedule']; // schedule
//login
$username = $_POST['username'];
$password = $_POST['password'];
//song list
$date = $_POST['date'];
$presenter = $_POST['presenter'];
$song = $_POST['song'];
//status
// $presenter = $_POST['presenter'];
$program = $_POST['program'];
// greetings
// $username = $_POST['username'];
// $id_greetings
$id_user = $_POST['id_user'];
$time = $_POST['time'];
$greetingstext = $_POST['greetingstext'];
$status = True;
//firefox
$firefox = $_GET['firefox'];
//schedule
/*
$firefox = "1";
$username = "user1";
$password = "pass1";
$list = "1";
$date ="2011-03-03";
$schedule = "1";
$program = "1";*/
if (!empty($login)) {
$query = mysql_query("SELECT * FROM user WHERE username='$username' AND password='$password'")
or die('Query error');
if(mysql_num_rows($query) > 0)
while($l = mysql_fetch_assoc($query)) {
echo "ID: ".$l['id_user']."<br />";
echo "User: ".$l['username']."<br />";
echo "Password: ".$l['password']."<br />";
}
}
elseif (!empty($list)) {
$query = mysql_query("SELECT * FROM song WHERE date='$date'")
or die('Query error');
if(mysql_num_rows($query) > 0)
while($l = mysql_fetch_assoc($query)) {
$i += 1;
echo "Number: ".$i."<br />";
echo "Presenter: ".$l['presenter']."<br />";
echo "Song: ".$l['song']."<br />";
echo "<br />";
}
}
elseif (!empty($program)) {
echo "Presenter: ".$sc[template1]."<br />";
echo "Song: ".$text."<br />";
echo "Quality: ".$bit1."<br />";
echo "Lisen: ".$sc[template3]."<br />";
echo "Max: ".$max1."<br />";
// echo "Rekord: ".$peak1."<br />";
}
elseif (!empty($firefox)) {
echo "Gra: ".$sc[template1]." Utwor: ".$text.".";
}
elseif (!empty($greetings)) {
$query = mysql_query("INSERT INTO greetings SET id_user='$id_user', time='$time', greetings='$greetings', status='$status'")
or die('Query error');
if($query) echo "Add record.";
else echo "Error.";
}
elseif (!empty($schedule)) {
$query = mysql_query("SELECT * FROM schedule")
or die('Query error');
if(mysql_num_rows($query) > 0)
while($s = mysql_fetch_assoc($query)) {
$i += 1;
echo "Id: ".$s['id_schedule']."<br />";
echo "Start: ".$s['start']."<br />";
echo "Finish: ".$s['finish']."<br />";
echo "Presenter: ".$s['presenter']."<br />";
echo "Name: ".$s['name']."<br />";
echo "Link: ".$s['link']."<br />";
echo "<br />";
}
}
else {
echo "No data";
}
?>