Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
function checkSaveQS($getvar){
if(isset($getvar)){
$chk =substr_count(strtolower($getvar),"select");
$chk+=substr_count(strtolower($getvar),"update");
$chk+=substr_count(strtolower($getvar),"delete");
$chk+=substr_count(strtolower($getvar),"insert");
$chk+=substr_count(strtolower($getvar),"drop");
//usw. die grundsachen eben
if($chk > 0){
die("Es wurde eine Sicherheitslücke entdeckt! Das Script wurde beendet");
}
}
}
foreach($_GET as $get){
if(!is_numeric($get)){
checkSaveQS($get);
}
}
//überprüfe ob id gesetzt, wenn nicht nimm id=10 als Standard-id
if(!isset($_GET["id"])) $id = "10";
if(isset($_GET['id']) && is_numeric($_GET['id'] )){
$sql = mysql_query("SELECT * FROM content_title WHERE id='".$_GET['id']."'");
$count = mysql_num_rows($sql);
if($count == 0){
echo "Diese Seite existiert nicht!"."</br>";
echo '<a href="'.$_SERVER['PHP_SELF'] .'">zurück</a>';
exit();
}
else{
if(!isset($id)) $id = $_GET["id"];
}
}
bedeutet es, dass damit die Tabelle löschbar wäre?@Johannes Röttger
Code:script.php?id=1';DROP TABLE `tabelle`;--
Erfasst. Wenn man Variablen nicht entsprechend escaped oder prueft, kann das passieren.abakuz hat gesagt.:bedeutet es, dass damit die Tabelle löschbar wäre?
Nein, in der Form wohl eher nicht. [phpf]mysql_query[/phpf] unterstützt die Ausführung mehrerer Anfragen in einem Aufruf nicht.abakuz hat gesagt.:Was mich noch ein bisschen verunsichert ist dieser Kommentar:
Johannes Röttger hat gesagt.:Code:script.php?id=1';DROP TABLE `tabelle`;--
bedeutet es, dass damit die Tabelle löschbar wäre?
<?php
function query_safe()
{
// Mindestens ein Parameter benötigt
if (func_num_args() < 1) return false;
if (func_num_args() == 1) {
// Nur ein Argument -> Delegation an
// Standardfunktion
return $this->query(func_get_arg(0));
}
/*
* Verarbeitung der variablen Argumentenliste
*/
$args = func_get_args();
// Erstes Arrayelement ist die Anfrage mit
// Formatierungszeichen
$query = array_shift($args);
// "Entschärfung" der restlichen Argumente
foreach ($args as $n => $arg) {
$args[$n] = mysql_real_escape_string($arg);
}
// Argumente in Abfrage integrieren
$safe_query = vsprintf($query, $args);
// Abfrage senden
return $this->query($safe_query);
}
?>
<?php
$db->query_safe('SELECT * FROM `tabelle` WHERE `foo` = \'%s\' AND `bar` = \'%d\'',
$_REQUEST['foo'], $_REQUEST['bar']);
?>
<?php
function escape(&$array)
{
mysql_real_escape_string(htmlentities($array,ENT_QUOTES));
}
if(is_array($_POST)) { array_map('escape',$_POST); }
if(is_array($_GET)) { array_map('escape',$_GET); }
?>