10. februar 2007 - 10:52Der er
38 kommentarer og 1 løsning
Haj til sikkerhed søges
Første skal det lige siges, at get_magic_quotes_gpc er slået til på serveren og PHP kører i safe mode.
Næst vil jeg gerne have, er, at man ikke kan skrive HTML i mine brugerfelter, der skal man f.eks. skrive og og det erstattes så af <b> og </b>
For at gøre det så simpelt som muligt, består eksemplet herunder af kun et felt, men i den virkelig verden er der flere felter og alle skal kunne indeholde tekst og tal, svarende til hvad der kan stå i et debatforum.
Her er selve oprettelsen: if(isset($_POST['opret'])) { mysql_query("INSERT INTO celle (noget) VALUES ('".$_POST['noget']."'") or die(mysql_error()); echo "Oprettet!"; } echo "<b>Opret noget</b><br><br> <form action='' method='POST'> <input type='text' name='noget' size='30'><br><br> <input type='submit' value='Gem' name='opret'> </form>";
Og udtrækket til visning: $query = mysql_query("SELECT * FROM celle"); while($row = mysql_fetch_assoc($query)) { echo $row['noget']; }
Hvis jeg skal have en fornuftig sikkerhed, hvordan kommer koden så til at se ud? - spørg endelig hvis du er i tvivl om, hvad jeg mener, eller der er andet, der kan være relevant!!
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Jeg vil godt indrømme, jeg er lidt tung, når det gælder det her med sikkerhed :) zynzz, hvad er det, din kode gør? coderdk, skal jeg forstår det sådan, at den fjerne htmel, men laver jeg den nederste linje, vil der gøre så [b] alligevel bliver lavet til html?
Er det hvad jeg har brug for, når det gælder sikkerhed?
Jeg fandt på et tidspunkt denne kode: $noget = mysql_real_escape_string(strip_tags(htmlentities($_POST['noget'])));
Vil den kunne bruges, er det en sammensmeltning af det I har lavet til mig?
zynzz, den side var jeg inde på tidligere i dag, men jeg fattede ikke en brik af det :) Det med at kode synes, jeg er svært, blander man det så med engelsk, er jeg helt lost :)
Ja det kan du godt, men jeg synes ikke nogen herinde bør give dig koderne da mindre begavede brugere kan kopiere det og ødelægge andre dårligere-beskyttet sites. Hvis du dog har en mail, kan jeg evt. forklare dig lidt om hvilke muligheder du har?
Kan lige uddybe mig selv da nogle kan opfatte det forkert. Jeg har på ingen måde erfaring med at ødelægge sites (:-)) men man lære ved at studere sikkerhed samt læse sikkerhedstutorials.
simplus, jeg forstår hvad du mener - og jeg er slet ikke i tvivl om, der er flere, der kunne finde på at udnytte det!!
Jeg lavede en dag et link til siden, og der lå noget test åben, som jeg kunne øve mig på, man kunne oprette og man kunne slette... ja det blev så brugt, dagen efter var det der kunne slettes slettet (røvbanan) :-/
Du må meget gerne skrive til mig på henrik [snabela] crazyinlove.dk - der er ikke nogen der skriver på den adresse endnu, så giv mig lige et praj her, når du har sendt det, ellers ser jeg det ikke :)
Med hensyn til udtræk som du nævvner i 14:35:03 så vil jeg sige at det kommer an på hvad databasen indeholder. Hvis indholdet allerede er tjekket og ikke indholder 'farligt' data, jamen så kan der jo ikke ske noget ved at trække det ud.
Ja, det er det, jeg gerne vil :) men er brugerne i nærheden af en forespørgelse? F.eks. bliver menuen generet dynamisk, så bør der være sikker der? Det må jeg da indrømme, jeg ikke har... og hvordan kan jeg gøre det?
Okay, simplus, så hvis det indhold der er gået i databasen er sikkert, kan jeg roligt lave det sådan: $query = mysql_query("SELECT * FROM celle"); while($row = mysql_fetch_assoc($query)) { echo $row['noget']; }
hewa, nej brugeren kan ikke ændre noget som bliver udskrevet da brugeren hverken har et input felt eller adgang til mysql. Hvis dit mysql login derimod ikke er beskyttet så vil brugeren jo kunne få adgang til alle forespørgelser, bare ved selv at lave en fil og logge på.
Men kan jeg sikre mit login bedre, end ved at have en god adgangskode? Mit login til databasen ligger jo i en fil som vel ved de fleste andre - men den kan man vel ikke komme til?? Nu bliver jeg sgu da helt nervøs :)
tror du misforstod mig med hensyn til forbindelsen til mysql. Det jeg mente var at filen ikke skulle være tilgængelig for folk samt at den IKKE skal være en .inc fil.
Nu til det der er værre, point. Der var jo flere, der bidrog med noget godt og konstruktivt. Når jeg kigger ned over siden, var det simplus, der "arbejde hårdest", så er der nogen, der føler sig stødte, hvis han får pointene? Ellers må I sige til!
Det er bare iorden, hvis han reagere giver jeg ham 50... ;)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.