Jump to content
php.lv forumi

aizsardzība.


daviskrex

Recommended Posts

hackerman, htmlspecialchars dara pavisam ko citu. Tā pasargā (lielākoties) no XSS (visādu sliktumu injecēšanu iekš HTML) nevis no SQL injekcijām. Tam ir mysql_real_escape_string vai citām DBVS kaut kas analogs.

Edited by andrisp
Link to comment
Share on other sites

hackerman, htmlspecialchars dara pavisam ko citu. Tā pasargā (lielākoties) no XSS (visādu sliktumu injecēšanu iekš HTML) nevis no SQL injekcijām.

 

Nu pieņemsim ir input lauks, post dati tiek ievietoti datubazē, rezultāts izprintēts. Post dati tiek filtrēti ar htmlspecialchars();

( $email = htmlspecialchars($_POST['email'], ENT_QUOTES); )

Tu teici, ka htmlscpecialchars neaizsargā no injekcijām... Tad jau tev nesagādās uztaisīt sql injekciju ?

Link to comment
Share on other sites

Sapratu, ko tu gribēji man pateikt, bet nu šāds risinājums ir galīgi garām (un pavisam noteikti nav 100% drošs. Īpaši SQL injekcijas nepārzinu, bet esmu pārliecināts, ka pastāv injekciju veidi bez ' un "). Garām tāpēc, ka htmlspecialchars pirmkārt un galvenokārt nav paredzēta šādam nolūkam. Tam ir speciālas funkcijas, kas eskeipo netikai ' un ", bet arī citus jūtīgos simbolus. Kā arī - ja man vajadzēs šos datus neeskeipotus ? Katru reizi vajadzēs izmantot htmlspecialchars_decode() vai ko tamlīdzīgu ? Nerullē.

Link to comment
Share on other sites

Es arī nēesmu eksperts sql injekcijās, bet kautko zinu... Piemēram login loga injekcijas piemēri:

' or 1=1--
" or 1=1--
or 1=1--
' or 'a'='a
" or "a"="a
') or ('a'='a

 

itkā visos bija pēdiņa(s). Nēesmu nekad taisījis drop table injekcijas. Reku piemērs:

SELECT email, passwd, login_id, full_name
 FROM members
WHERE email = 'x'; DROP TABLE members; --';  -- Boom!

Atkal itkā ir pēdiņas :) Nu okei, nestrīdēšos tev pretīm, ticēšu, ka drošāk ir ar mysql_real_escape_string :)

Par vajadzību pēc eskeipotiem/neeskeipotiem datiem - skatoties, ko vajag :) Nedomāju, ka emaila adresē būtu jāmētājas neeskeipotām pēdiņām, bet citur, kautkur komentāros, rakstos etc., eskeipošana pat traucētu... :)

Link to comment
Share on other sites

emaila adresē būtu jāmētājas neeskeipotām pēdiņām
Email adrese vispār būtu jāvalidē, ka ' " un nav iespējami ;)

 

kautkur komentāros, rakstos etc., eskeipošana pat traucētu... :)
Kādā ziņā traucētu ?

 

Un atkal par tām pēdiņām - protams, ka lielākā daļa injekciju izmanto tās, bet tev neliekas loģiski, ka, piem., fjai mysql_real_escape_string() dokumentācijā ir rakstīts, ka tā eskeipo \x00, \n, \r, \, ', " un \x1a, un, ka tas nozīmē, ka īpašos apstākļos varbūt ir iespējams SQL injekcijas (vai arī vienkārši sačakarēt kveriju), izmantojot kādu no tiem pārējiem simboliem ?

Link to comment
Share on other sites

×
×
  • Create New...