Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
JavaScript validering er _kun_ til for brugerens skyld. Det er der _absolut_ ingen sikkerhed ved. Du skal helt sikkert validere med PHP før indsættelse.
tvivler på captcha kan bruges til at sikre mod xss i dette tilfælde?
Min form peger på en adduser.php, der laver en insert i min db via en membership klasse og hvis funktionen på membershipklassen returnere true sender den brugeren videre til et bekræftelsessite.
Mere er der ikke i den... Det jeg er bange for er at adduser.php kan tilgåes udefra af nogle der efterligner min form og på den måde kan oprette brugere andre steder fra.
- men du skal huske at tjekke, at session-variablen er præcis magen til teksten. Ellers laver du bare en ligegyldig quiz til brugeren, som intet har med captcha eller sikkerhed at gøre ;o)
Det var ikke lige det jeg mente ... når spørgerens captcha-dingenot er godkendt, sættes en sessionvariabel som "den fil jeg sender til".php kan kigge på.
Ellers også snakker vi forbi hinanden - den udgave du har nu fungerer vel som den skal. Så hvad er problemet i din nye udgave i forhold til den du har?
Det kan være, det er mig, der har kigget for dybt i kartoffelgryden, men det er nok denne sætning jeg ikke forstår meningen med: "[...] men den fil jeg sender til ved da ikke hvad captcha koden skal være?"
Gennemtænkte bare ikk helt hvordan captche virkede.. så my bad, self er det løsningen :) Jeg fandt et smarty plugin til captcha, hvilket gjorde det dejligt nemt :)
Du skriver at javascript kun er for brugeren og input også bør valideres i PHP. Men hvis brugeren ikke kan gå videre uden at formen er udfyldt korrekt, er det så ikke overkill at lave validering i php bagefter hvis de alligevel ikke kan komme videre uden at skrive captcha koden rigtigt også?
Validering foretages i PHP, hvis captcha koden validerer - så evt. bruger-input sikres, inden de kommer i nærheden af databasen.
På den anden side er der ikke grund til, brugeren skal vente på besked fra serveren om, at han mangler et felt el.lign. Derfor kan det være en god idé at validere med JavaScript, inden formen submittes - men det sikrer ikke noget.
- og når du validerer i PHP, må du ikke afvise ulovlige tegn - men i stedet godkende lovlige!
Du må ikke lave validering, hvor du forsøger at gætte, hvad brugeren kunne finde på at bruge af 'grimme' tegn ... det må du ikke tro, du har fantasi til ;o)
Derimod skal du, hvergang du modtager input fra en bruger, opstille hvilke tegn, du vil godkende og forkaste data, der ikke _kun_ består af de tegn, du har tilladt for den pågældende variabel.
Og det var den tekniske forklaring, Ole kom med. Brugeren, derimod, er ligeglad med teknikken, og vil bare have, at hvad han nu finder på at skrive bliver registreret. Derfor skal man ikke afvise rimelige tegn som ulovlige. Det kan være enkelt-stroffer, fordi de "driller" i databasen, men man kan jo hedder O'Rourke. Eller man siger at navn kun må være a-zæøå, men glemmer dem, der hedder Schlüter. Eller man vil have at et telefonnummer skrives på en helt bestemt måde. Osv osv.
Du får ikke mig til at garantere at noget er "nok". Men mysql_escape_string kan være en del af en løsning. Du skal også have styr på om PHP af sig selv sætter \-ere foran '-ere og lignende, når data kommer fra brugeren. Jeg vil foretrække at bruge http://php.net/mysqli
Jeg er ret sikker på, Erik ikke er interesseret i points. Til gengæld er jeg ligeså sikker på, han straks hiver sin krydsslåningspen og kalender frem, når han hører, jeg med stor entusiasme tilslutter mig hans seneste to kommentarer ;D
Nemli' - ingen point til mig, tak. Jeg sætter et X.
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.