strip_tags() bied naar mijn weten helemaal geen bescherming tegen mysql injection, dit omdat het alle html tags stipt en dus bescherming bied binnen je html.
Voor zover ik weet zijn de quotes ( " en ' ) het probleem bij mysql injection en dus moet je daar bescherming tegen bieden, iets wat dat eventueel wel doet is:
htmlentities($sText, ENT_QUOTES);
maar mysql_real_escape_string is standaard ingebouwd en bied bescherming, dus waarom deze niet gebruiken? :P
Hier zit ik ook al een tijdje over te twijfelen want als je
<?php
mysql_real_escape_string();
?>
gebruikt haalt ie alle gevaarlijke tekens weg: ' en " en dan nog een aantal ma wat nouw als je deze tekens in een topic titel wilt hebben?
Dan is [php]mysql_real_escape_string[/php]
niet zo handig dan zou je zoals boaz zij
[php]htmlentities[/php] kunnen gebruiken ma nouw weet ik niet of dit 100% garantie geeft tegen sql injection
Zo ik denk wat het beste is wat je zou kunnen doen als je het van bijde niet zeker weet zelf een functie maken die bepaalde karakters wel toelaat en andere weer niet:)
@mebus, mysql_real_escape_string() haalt toch niks weg? er komt toch gewoon een escape teken voor?
Ik gebruik momenteel dit:
<?php
public function escapeString($p_sStr){
return mysql_real_escape_string(htmlspecialchars($p_sStr, ENT_QUOTES));
}
?>
zet eerst alle html+quotes om en haalt er vervolgens nog eens mysql_real_escape_string over.
Nadeel is, dat als je html uit je database wil hebben, je alles weer terug om moet zetten (kost tijd), maar omdat ik meestal geen html als output wil beschouw ik dit niet als een probleem.