15:10
18/5/2010
18/5/2010
Jeden z banków na swoich internetowych stronach pomocy wyjaśnia, czego nie wolno wpisywać jako odpowiedź na tzw. pytanie kontrolne:
Kto wie:
- z którego modułu do Apache’a korzysta bank, ew. jakiego ma WAF-a? :>
- …i jak można obejść ten problem? :-)
Ku pamięci: oryginał i cache Google.
Nie wystarczy przyjmowanych danych enkodować?
my w firmie mamy wyfiltrowane etc/passwd
mod_security?
HCSL był pierwszy :>
r9: Chyba raczej Jubal kilka dni temu na blipie ;) a potem tmkasprzak, do którego odsyłamy w naszym tekście i do którego dziś link podesłał nam jeden z czytelników przez formularz :)
Pytanie powinno być “kto zatrudniał małpy do pisania aplikacji/zapytań do bazy” ;]
Możliwe ;D
@XANi
Małpy nie są aż takie głupie.
No ale bez przesady, wyfiltrowanie takiego czegoś to kwestia 2-3 linii kodu. Chyba że chodzi im o fakt zastosowania właśnie takiego zabezpieczenia przez co mogą wystąpić przekłamania.
a może poprostu robią statystykę ile osób próbuje się do nich dobrać i zliczają wszystkie komendy
Powinni, wzorem innych firm, zabronić włamywania się do banku przez Internet.
Kto wie, jakie zabezpieczenia są używane przez hamerykańskie banki ? Chodzi mi o jakieś tokeny, hasła sms i tego typu wynalazki.
Kiedyś słyszałem plotę, że jak mamy login/hasło użytkownika banku, to możemy sobie robić co tylko chcemy z jego pieniędzmi…
PS. Odnośnie małp i zapytań do bazy… Idę o zakład, że robiła to jakaś firma, która była TANIA.
Chodzi właśnie chyba o to, że filtrują takie dane.
Z tym, że jeśli klient sobie będzie chciał ustawić odpowiedź: “Ala ma DROP kota”, to po filtracji zostanie mu “Ala ma kota” – a to nie jest odpowiedź wpisana przez niego.
Tak, czy inaczej – śmiesznie :)
@Mike filtrować ? nawet to nie jest potrzebne
$query=”SELECT * FROM x WHERE a = ? AND b = ?”
$db->execute($query, $a, $b);
i tyle, ew. if żeby a i b nie były za długie ( no bo po co męczyć baze noobkami ślącymi 16kB parametry)
Co innego gdyby chodziło o pytanie, ale jeśli idzie o odpowiedź to czy zahashowanie jej nie jest wystarczającym rozwiązaniem? Ew. jeszcze zamieniać wszystkie litery na małe.
@middleofdreams: Małe litery to raczej kosmetyka, dla silnika bazy danych nie ma znaczenia, czy napiszesz “SELECT”, czy “select”.
@Tomko middleofdreams raczej miał na myśli trzymany w bazie hash(lowercase(odpowiedz_na_pytanie)), a przy porównywaniu: if(hash(lowercase(odpowiedz_na_pytanie_z_formularza)) == hash_zapisany_w_bazie)
return ok;
a nie samą zamianę wielkich liter w zapytaniu sql na małe.
a czy * or 1=1 or 1=* przy logowaniu zadziała?
Gwiazdki zamiast apostrofów bo blokujecie…