Heim >Backend-Entwicklung >PHP-Tutorial >Ist es notwendig, SQL-Injection bei der Entwicklung mit dem TB-Framework zu verhindern? Wie kann man SQL-Injection verhindern? Bitten Sie Gott um Antworten

Ist es notwendig, SQL-Injection bei der Entwicklung mit dem TB-Framework zu verhindern? Wie kann man SQL-Injection verhindern? Bitten Sie Gott um Antworten

WBOY
WBOYOriginal
2016-08-04 09:20:231251Durchsuche

Ist es notwendig, SQL-Injection bei der Entwicklung mit dem TB-Framework zu verhindern? Wie kann man SQL-Injection verhindern? Bitten Sie Gott um Antworten

Antwortinhalt:

Ist es notwendig, SQL-Injection bei der Entwicklung mit dem TB-Framework zu verhindern? Wie kann man SQL-Injection verhindern? Bitten Sie Gott um Antworten

Eine einfache Möglichkeit:
Verwenden Sie PDO, um die Datenbank zu betreiben. Verwenden Sie in der auszuführenden SQL-Anweisung: Platzhalter oder? Platzhalter, anstatt Zeichenfolgen direkt zu verbinden, und verwenden Sie dann bindParam, um Parameter zu binden und den Parametertyp anzugeben .
Ein einfaches Beispiel

<code>$pdo = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);//先新建一个PDO
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//开启PDO的报错
$sql = 'SELECT * FROM article WHERE id > ? ;';//使用?占位符
try{
    $stmt = $pdo->prepare(sql);//返回的statment的值赋给$stmt
    $stmt -> bindParam(要绑定的占位符的位置, 要绑定的变量 [, 数据类型]);//bindParam()是$stmt的方法而不是$pdo的方法
    $stmt -> execute();//执行sql语句
} catch (PDOException $e) {
        echo 'Execute SQL failed: ' . $e->getMessage();
        exit();
    }</code>

Parametrierte Abfragen mit mysqli oder pdo

Ob Sie ein Framework oder etwas anderes sind, PDO hat nichts mit Injektion zu tun. Sie versuchen, dies durch Platzhalter und Vorverarbeitung zu verhindern. Tatsächlich kann keines davon einen 100-prozentigen Nutzen erzielen . % Effekt, es ist sicherer, die globale Filterung selbst zu schreiben und SQL-Schlüsselwörter herauszufiltern

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn