volevo alcune elucidazioni sulle iniezioni sql. Per ipotesi facciamo che l'escape dei ' e dei " non sia fatta da php. Allora noi abbiamo il db con una tabella users in cui ci sono username e password degli utenti del sevizio. noi nel campo password del form per l'accesso inseriamo una stringa tautologica del tipo:
123' OR '1'='1
fin qui è tutto chiaro. In riferimento alla query:
SELECT * FROM users WHERE user='username' AND password = '123' OR '1'='1'
possiamo dire che il secondo congiunto (quello che sta a destra dell'AND) risulta necessariamente verificato dall'input immesso. Ma la query per essere vera deve soddisfare la congiunzione AND. Essa risulta vera quando anche user='username' viene resa vera. E in questo caso mi sembra che è condizione necessaria conoscere il vero nome che l'utente usa per il login. Quindi mi sembra di aver capito che se anche la iniziezione risolve il problema della password in realtà lascia inalterato quello della username. Si deve quindi usare un input simile a quello usato per la password anche con la username? Ma ste cazzo di iniezioni voi le avete mai subite o performate? perche a me mi par tanto fantascienza!!!