Masquage du message d'erreur PHP/MySQL
Question
J'ai un site Web basé sur X-Cart.Ça marche bien.Cependant, lorsque je vais à l'adresse (en accédant manuellement au lien) www.mysite.com/"Xx<XaXaXXaXaX>xX
J'obtiens ce message d'erreur :
SQL INVALIDE : 1064 :Vous avez une erreur dans votre syntaxe SQL;Vérifiez le manuel qui correspond à votre version MySQL Server pour que la syntaxe droite puisse utiliser près de '",)
' LIMIT 1' at line 1<br /><b><font color="darkred">SQL QUERY FAILURE:</font></b>SELECT xid FROM xcart_session_history WHERE ip = INET_ATON('165.193.42.141') AND host = '"XxxXx';",)
'Limite 1
SQL INVALIDE : 1064 :Vous avez une erreur dans votre syntaxe SQL;Vérifiez le manuel qui correspond à votre version MySQL Server pour que la syntaxe droite puisse utiliser près de '; ",)', 'e8bc1df13aab2c25c7560512a5029eb1')' at line 1<br /><b><font color="darkred">SQL QUERY FAILURE:</font></b>REPLACE INTO xcart_session_history (
adresse IP,
hôte,
xid) VALUES (INET_ATON('165.193.42.141'), '"XxxXx';",)
',' E8BC1DF13AAB2C25C7560512A5029EB1 ')
Je trouve qu'il s'agit d'une vulnérabilité sur mon système car elle révèle le nom de la table et d'autres détails.
Je voudrais empêcher PHP/MYSQL d'afficher ce message à l'écran.Comment puis-je le désactiver ?
La solution
Ensemble $debug_mode
dans config.php à 2
http://help.x-cart.com/index.php?title=X-Cart:Config.php#Correcting_debug_mode
Autres conseils
// Désactive tous les rapports d'erreurs
error_reporting(0);
// Signale toutes les erreurs PHP
error_reporting(E_ALL);
// Signale toutes les erreurs PHP
error_reporting(-1);
utilisez l'un de ceux-ci si vous utilisez une base de données, puis sélectionnez error_reporting (0)
Pour désactiver tous les rapports d'erreurs :
error_reporting(0);
Vous devez le placer en haut d'un fichier d'en-tête chargé sur toutes les pages.
error_reporting(0);
//est plus sûr puis en modifiant le config.php déposer