Gamux Game Entwicklung  
     

Left Nav Mit Facebook verbinden Registrieren Lexikon Lexikon Interessengemeinschaften Suchen Heutige Beiträge Alle Foren als gelesen markieren Right Nav

Left Container Right Container
 
Alt 29.07.2009, 00:32   #1 (permalink)
Neuer Benutzer
 

Standard Was gehört in die logs

Hallo,
wie der Titel bereits sagt möchte ich gerne erfahren,
was alles in meinem log enthalten sein sollte über
die Spieler, was für Aktionen usw. wäre ziemlich dankbar
darüber mehr zu wissen
zudem (was ich hier einfach mal mit reinschreibe)
wie sichere ich meine mysql verbindung vor injection ?

vielen Dank an alle, die mir bei den beiden Sachen weiterhelfen
können.
bartuc ist offline   Mit Zitat antworten An Facebook senden
Werbung
Alt 29.07.2009, 12:46   #2 (permalink)
Neuer Benutzer
 

Standard

Was in einem log stehen soll hängt denke ich davon ab, was du mit dem log vorhast. Also ob du Cheater enttarnen willst, wissen willst was deine Spieler so machen, oder nur sehen willst wann sie Online waren. Je nachdem musst du selbst wissen was geloggt werden soll.
Und du sicherst nicht deine MySql-Verbindung gegen Injections sondern deine Querys. Wenn es im Script beispielsweise so aussieht:
PHP-Code:
mysql_query("SELECT * FROM user WHERE id=".$_GET["id"]); 
Dann ermöglichst du einem Angreifer damit dass er Belibiegen SQL-Code in deine Query Injecten kann(indem er einfach SQL Befehle an id anhängt), die ihm z.b. das Passwort eines Users verraten.
Desshalb solltest du alle Eingaben des Users immer möglichst gut prüfen/sichern.
Dass geht z.b. mit mysql_real_escape_string(), und im Fall oben einfach prüfen ob $_GET["id"] eine Zahl ist.

Geändert von satan (29.07.2009 um 12:48 Uhr).
satan ist offline   Mit Zitat antworten An Facebook senden
Alt 29.07.2009, 13:06   #3 (permalink)
Neuer Benutzer
 

Standard

Also erstmal vielen Dank für deine Antwort
ich habe vor z.B. cheater mit dem log zu enttarnen.

Wie sicher wäre es, wenn die Daten aus meiner form so weiterverarbeitet
werden? und ist
PHP-Code:
strip_tags($irgendwas); 
dabei nützlich ein wenig mehr sicherheit zu bekommen?
PHP-Code:
$myusername $_POST['myusername'];
    
$mypassword md5($_POST['mypassword']);
    
$sql "SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
    
$result mysql_query($sql);
    
$count mysql_num_rows($result);
    if(
$count==1) {
     
$_SESSION['myusername'] = $myusername;
     
$_SESSION['mypassword'] = $mypassword;
     
header("location:login_success.php");
    } 

was macht denn:
PHP-Code:
mysql_real_escape_string() 
genau? habe die funktion bisher noch nicht verwendet.
bartuc ist offline   Mit Zitat antworten An Facebook senden
Alt 29.07.2009, 13:40   #4 (permalink)
Neuer Benutzer
 

Standard

strip_tags() hilft zwar mehr Sicherheit zu bekommen, aber nicht bei SQL-Querys
Sondern wenn Daten die ein Nutzer eingegeben hat, auch wieder angezeigt werden sollen, entfernt strip_tags möglichen HTML-Code.
Also wenn ein Nutzer "<b>hallo</b>" eingegeben hat, und dass wird jetzt einfach so einem anderen angezeigt wird, dann sieht er natürlich "hallo".

Mit strip_tags wird der Code entfernt und der Nutzer sieht ganz normal "hallo".
Alternativ kannst du auch htmlspecialchars() verwenden, dass macht z.b. aus "<" ein "&lt" und sorgt so dafür dass der der Nutzer dann "<b>hallo</b>" sehen würde.


Von php.net:
Zitat:
mysql_real_escape_string() ruft die Funktion mysql_real_escape_string der MySQL-Bibliothek auf, die folgende Zeichen mit einem Backslash ('\') versieht: \x00, \n, \r, \, ', " und \x1a.
Die Funktion muss immer (mit wenigen Ausnahmen) verwendet werden, um Daten abzusichern, bevor sie per Query an MySQL übermittelt werden.
In deinem Code könnte man z.b. als myusername "admin'/**" übergeben.
"/**" bewirkt dass der Rest des Querys ignoriert wird und somit auch ein Ergebniss geliefert wird wenn das Passwort falsch ist(Der Angreifer wäre jetzt als "admin" angemeldet).
Mit mysql_real_escape_string() wird das "'" maskiert, und der vom User eingegebene String kann sozusagen nicht aus seinen zwei von dir vorgesehenen "'" ausbrechen.
In deinem Code wird das dann etwa so verwendet:
PHP-Code:
$myusername mysql_real_escape_string($_POST['myusername']); 

Geändert von satan (29.07.2009 um 13:43 Uhr).
satan ist offline   Mit Zitat antworten An Facebook senden
Alt 29.07.2009, 14:09   #5 (permalink)
Neuer Benutzer
 

Standard

Ich habe dir nochmals zu danken
das wäre ein fataler Fehler von mir gewesen, wenn man sich so leicht Zutritt verschaffen könnte...
muss ich bei allen möglichen, wie Passwort, Profil, Nachrichten usw.
mysql_real_escape_string(); verwenden?
Gibt es ansonsten noch Dinge, die ich beachten sollte?

Danke nochmal ohne dich wäre meine Seite wahrscheinlich sehr sehr unsicher.

PS: auch wenn es hier normalerweise nicht mehr hingehören würde:
wenn ich mein C++ Programm auf mysql zugreifen lasse, wo es nur Felder,
wie Username, Passwort, Key gibt, muss ich da auch irgendetwas in der Art benutzen?
bzw. wäre das problem schon behoben, wenn Username und Passwort wegfallen würde und nur Key überbleibt?
bartuc ist offline   Mit Zitat antworten An Facebook senden
Alt 29.07.2009, 20:31   #6 (permalink)
Neuer Benutzer
 

Standard

Ja, mysql_real_escape_string() sollte überall verwendet werden wo Nutzereingaben in eine Abfrage einfließen. Auch gibt es noch andere Dinge die man wissen sollte, Informationen findet man z.b. hier: http://www.oreilly.de/artikel/php_sicherheit.html
oder auch hier: https://wwwbs1.informatik.htw-dresde...icherheit.html
Bei einem C++ Programm kommt es darauf an, aber grundsätzlich gilt hier dass gleiche. Da kenn ich mich aber auch nicht so aus.
satan ist offline   Mit Zitat antworten An Facebook senden
Alt 31.07.2009, 16:33   #7 (permalink)
Neuer Benutzer
 

Standard

Danke für deine Hilfe, so wie auch die Links.
Habe kurz mir die Seiten angeschaut, aber bei meinem bisherigen, was
ich gemacht habe kann man nicht den rest einfach auskommentieren oder
sonstiges und ich habe da noch nicht mysql_real_escape_string() verwendet.
bartuc ist offline   Mit Zitat antworten An Facebook senden
Antwort

Themen-Optionen
Ansicht

Forumregeln
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:29 Uhr.


Style Copyright by Wrestling Forum
Content Relevant URLs by vBSEO 3.3.0