Lieber Felix Riesterer,
Hm, eigentlich dachte ich alle Variablen die Irgendjemand eingibt schonmal vorab entschärfen.
das ist Unsinn. Die Idee, etwas zu entschärfen setzt voraus, dass es einen Kontext gibt, in dem diese Daten gefährlich sein könnten. Du kannst nicht irgendwo im Script von irgendeinem Kontext ausgehend die Daten für alle Kontexte entschärfen. Daher mein Einwand: Lass es einfach sein. Nimm die originalen Daten (erkennbar am
$_GET
- oder$_POST
-Array) und kodiere sie an Ort und Stelle je nach Kontext entsprechend wie in meinem Beispiel. Dann hast Du die Daten hinsichtlich der Gefährlichkeit im Griff. Sonst verlässt Du Dich auf irgendeinen ominösen Zauber und bist am Ende verlassen.
Auf das man es an einer Stelle vergisst... Jede Eingabe von einem Benutzer ist potentiell gefährlich, darum muss man das ja machen. Und warum dann nicht Zentral für alles was ankommt? Naja wenn es gesagt wird, dann setzt der Leie das so um.
Sprich:
<?php
session_start();
require_once('db_connect_function.php');
if(isset($_POST['chat']) && !empty($_POST['chat']))
{
$writer = mysqli_real_escape_string ($_SESSION['user_name']);
$chat = mysqli_real_escape_string ($_POST['chat']);
$world = mysqli_real_escape_string ($_POST['world']);
$language = mysqli_real_escape_string ($_POST['language']);
$alliance = mysqli_real_escape_string ($_POST['alliance']);
$insert_message = sprintf(
'INSERT INTO chat ('
. 'message_writer, message, message_date'
. ') VALUES ('
. '\'%1$s\', \'%2$s\', \'%3$s\''
. ')',
$_SESSION['user_name'],
$_POST['chat'],
time());
if($db -> query($insert_message) === TRUE)
{
$db -> commit();
}
else
{
//error_log! $create_db_connect->error.
}
exit();
}
?>
Gruß Jo