webForumDet fria alternativet

"farliga tecken"

PHP

6 svar · 461 visningar · startad av Prime_66

Medlem sedan aug. 2004290 inlägg
Frågan#1

Vilka tecken bör man inte låta användare få skriva in i sin mysql databas? T.e.x ska man väl inte tillåta tecknena \'* ? Vilka fler bör man inte acceptera?

Medlem sedan mars 20032 667 inlägg
#2

Du kan i princip acceptera alla tecken så länge du kör escape-sekvenser på dina variabler. För att göra detta använder du funktionen addslashes(). Denna körs normalt som default i PHP, kolla dina inställningar i inställningsfilen php.ini. Innehållet påverkas dock inte eftersom databashanteraren "återställer" datan.

Redigerar in en länk:
http://se.php.net/addslashes

Medlem sedan mars 20034 471 inlägg
#3

Varför är * farligt? Vad gör det i o-escape:ad form? :o :q

Medlem sedan juni 20015 009 inlägg
#4

aasah skrev:

Varför är * farligt? Vad gör det i o-escape:ad form? :o :q

* Som i All?

Medlem sedan dec. 1999757 inlägg
#5

aasah skrev:

Varför är * farligt? Vad gör det i o-escape:ad form?

Egentligen inte någonting. För att kunna använda tecken som -,+,*,<,> etc. så krävs först att man kan bryta kodkedjan i sql-frågan. Genom att använda addslashes som föreslagets tidigare så kan man ganska säkert tillåta vad som helst.
Tecken som man inte vill godkänna utan addslashes är \ ' " och NULL

Medlem sedan sep. 20011 086 inlägg
#6

För att göra en sträng säker att skicka till en databas bör man använda mysql_real_escape_string() istället för addslashes().

Medlem sedan aug. 20011 099 inlägg
#7

annar går det och sätta på magic_quotes = on i apache så slipper du köra funktonen addslashes hela tiden!

253 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)