Maison > développement back-end > tutoriel php > Comment puis-je échapper en toute sécurité les chaînes dans les requêtes SQL Server à l'aide de PHP ?

Comment puis-je échapper en toute sécurité les chaînes dans les requêtes SQL Server à l'aide de PHP ?

Linda Hamilton
Libérer: 2024-12-09 02:05:14
original
191 Les gens l'ont consulté

How Can I Safely Escape Strings in SQL Server Queries Using PHP?

Échapper des chaînes dans SQL Server à l'aide de PHP : un guide complet

Lorsque vous travaillez avec SQL Server à l'aide de PHP, il est crucial de protéger vos données contre Attaques par injection SQL en échappant correctement les chaînes. Il s'agit d'une technique permettant d'empêcher que des entrées malveillantes soient interprétées comme des commandes SQL.

Alternative à mysql_real_escape_string()

Contrairement à MySQL, SQL Server ne fournit pas de fonction intégrée fonction équivalente à mysql_real_escape_string().

Entrée addslashes()

addslashes() est une fonction PHP qui est souvent considérée comme une alternative potentielle à l'échappement de chaîne. Cependant, il est important de noter que addlashes() n'est pas entièrement adapté à une utilisation avec les bases de données SQL Server.

Une solution plus robuste

La solution idéale est d'encoder manuellement les données sous forme de chaîne d'octets hexadécimale. Voici un extrait de code pour vous guider :

$unpacked = unpack('H*hex', $data);
mssql_query('
    INSERT INTO sometable (somecolumn)
    VALUES (0x' . $unpacked['hex'] . ')
');
Copier après la connexion

Abstraction pour l'échappement réutilisable

Pour simplifier et réutiliser le processus d'échappement, vous pouvez créer une fonction personnalisée comme celle-ci :

function mssql_escape($data) {
    if(is_numeric($data))
        return $data;
    $unpacked = unpack('H*hex', $data);
    return '0x' . $unpacked['hex'];
}

mssql_query('
    INSERT INTO sometable (somecolumn)
    VALUES (' . mssql_escape($somevalue) . ')
');
Copier après la connexion

Alternative à mysql_error()

Pour la gestion des erreurs, SQL Server fournit mssql_get_last_message() comme alternative à mysql_error().

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal