Stránka: 5 z 6
| [ Príspevkov: 153 ] | 1, 2, 3, 4, 5, 6 |
Autor | Správa |
---|
Registrovaný: 16.10.08 Prihlásený: 26.07.16 Príspevky: 82 Témy: 12 | 12 |
SHA1 ešte prekonané nebolo a v súčastnosti je najbezpečnejšie.
Salt je dobrá metóda na obranu (není možnosť že v databáze budú dve heslá rovnaké). Okrem hesla by som už nič nehashoval.
Príklad: pri registrácii do db uložím zadaný nick a heslo ktoré sa bude skladať zo zahashovaného nicku+hesla+nejakých blbostí typu hatlamatla stanovených serverom. Pri prihlasovaní overím nick a to heslo (zasa si ho zložím zo zadaného nicku+hesla+tých blbostí) overím s tým čo mám v databáze ak ok tak ok. Ak mi niekto ukradne databázu, nič sa nestane, ak aj prístup ku kódu, tiež nič. Ak niekto získa prístup na server s plnými právami som v peknej ale proti tomu nič neexistuje.
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
Sha1 prekonané BOLO.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 16.10.08 Prihlásený: 26.07.16 Príspevky: 82 Témy: 12 | 12 |
No OK tak bolo, ale sha1 sa dá prelomiť iba útokom brute-force čo je dosť ťažké. Existujú teda v php iné bezpečnejšie riešenia hashovania ako pomocou sha1?
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
Co znamena bezpecnejsie? Ak ti ide o to aby nikto z hashovaneho stringu nedostal heslo, tak to z velkej casti riesi salto
Pripadne sha1(md5(heslo + salto)) ale to uz su uchylnosti
shaggy: to je salt, nie salto
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 30.04.09 Prihlásený: 11.02.10 Príspevky: 723 Témy: 81 | 81 |
pokial beriem nieco cez get a viem ze nieje retazec dlhsi ako 10 staci ako ochrana strlen(), a ak ano aky najkratsi retazec by ma mohol ohrozit?
edit...do DB
|
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 | 149 Bydlisko: Houston, Texas |
or 1=1
|
|
Registrovaný: 30.04.09 Prihlásený: 11.02.10 Príspevky: 723 Témy: 81 | 81 |
dobra pripomienka az ma zamrazilo
ale to iba v pripade ze dosadim GET do WHERE a tam pustam iba num
|
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 | 149 Bydlisko: Houston, Texas |
napríklad, ja $_GET proste ošetrujem nejak takto
Kód: preg_replace("([^a-zA-Z0-9])", "", $_GET[nieco]);
|
|
Registrovaný: 07.07.08 Prihlásený: 26.06.20 Príspevky: 38 Témy: 10 | 10 Bydlisko: City 17 |
Nazdar, niekto tu spominal hashovanie Nicku a e-maliu.. (podla mna to je blbost) ale ako napr. chranit udaje ako Adresa, telefónne číslo. to je podľa mňa dôležitejšie ako Nick.
a ešte jedna vec, ja ošetrujem vstupy len pomocou htmlspecialchars() nevidim vyznam tam davat ešte aj addslashes. alebo by sa to dalo neako obísť ? dik vopred.
_________________ "We are willing to suffer, to die for the things we care about. For love, for the right choices." |
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
ochrana dat a ochrana scriptov su 2 uplne rozdielne veci.
ak mam v systeme data ktore potrebujem chranit aj pre pripad uspesneho utoku na system (pristup utocnika k datam a zdrojakom), tak pouzivam sifrovanie pomocou dvojice klucov (data su sifrovane public klucom ktory je na serveri a utocnik ho pravdepodobne zisti, ale desifrovanie je mozne len pomocou privatneho kluca ktory mam len ja a na servery nikde nie je)
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 | 149 Bydlisko: Houston, Texas |
keď nepoužiješ addslashes a budeš chcieť vložiť ' tak ti to prinajlepšom vyhodí chybu.
|
|
Registrovaný: 07.07.08 Prihlásený: 26.06.20 Príspevky: 38 Témy: 10 | 10 Bydlisko: City 17 |
Citácia: ochrana dat a ochrana scriptov su 2 uplne rozdielne veci. Preto mam medzi otazkami medzeru ale k teme Goodwill dik uplne som zabudol že sa dáta dajú aj tak šifrovať aby sa dali dešifrovať. Citácia: keď nepoužiješ addslashes a budeš chcieť vložiť ' tak ti to prinajlepšom vyhodí chybu.
ja addslashes nepoužívam. a samo mi dáva pred uvodzovky lomitka, takže to asi robia magic_quotes.
keby som mal magic_quotes vypnute, tak by mi to hadzalo chyby?
a ešte jedna vec, teda ak mam tie Quotes zapnute a dam tam aj addslashes nebude sa to šahať?
DIKI moc všetkym už som to pochopil , niekedy stači tak malo
_________________ "We are willing to suffer, to die for the things we care about. For love, for the right choices." |
|
Registrovaný: 30.04.09 Prihlásený: 11.02.10 Príspevky: 723 Témy: 81 | 81 |
mna by zaujmalo ci ta ochrana if is_numeric je sama osebe neprekonatelna tj ci ceznu nieco neprejde zabalene v specialnych znakoch, pouzivam totiz ciselny hash ID-u
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Je to bezpecne, ale ak pouzivas prirodzene cisla, skus is_int() || ctype_digit().
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 | 96 | |
Registrovaný: 12.04.10 Prihlásený: 14.05.10 Príspevky: 12 Témy: 2 | 2 |
miso250593 píše: napríklad, ja $_GET proste ošetrujem nejak takto Kód: preg_replace("([^a-zA-Z0-9])", "", $_GET[nieco]);
Myslim ze to je nie postacujuce...
|
|
Registrovaný: 20.03.08 Prihlásený: 08.03.17 Príspevky: 596 Témy: 149 | 149 Bydlisko: Houston, Texas | |
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 | |
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
asi preto, lebo nie kazdy ma moznost pouzivat mysqli a hodnoty z $_GET sa nepouzivaju len na pracu s db
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
no dobre ale selectovanie typu "select 'a' from table" hadam existuje v MySql
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
existuje, ale narazal som na prepared statement (vstavanu funkciu)
mozno niekomu pomoze: SQL Injection Cheat Sheet
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
smutne ze prepared statement nieje standardne k dispozicii. priznam sa ze o MySql a PHP viem minimum az takmer nic ale mohlo by zafunngovat nieco taketo :
Kód: create table dual (dummy varchar(1)); insert into dual(dummy) values ('X'); select a.pass from TABLEXX as a, (select $_GET[nieco] as COL1 from DUAL) as B where a.login = b.col1;
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
v mysql je ps dostupne, ale v php nie je na to podpora, a tak je jednoduchsie osetrit vstup priamo v php, ako to zlozitejsie riesit v sql...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
tak to je riadna dekadencia pisat este v php 4
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
nj, ale cudoval by si sa, na kolkych firemnych serveroch je este nainstalovana stara verzia php...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
poznam jeden velmi velky portal, ktory nemoze prejst na 5 kvoli spatnej nekompatibilite jedneho modulu. Ale ak sa nemylim, php4 uz nema ani security updates
Mimochodom, niektore frameworky vedia simulovat prepared statements. Nakoniec aj tak iba escapuju, ale nemusite to robit rucne. Mne sa lepsie pise Kód: $objekt->funkcia("select ... where x=?", $_GET["meno"]) ako Kód: "select ... from ... ".mysql_real_escape_string($_GET["meno"])."..." samozrejme ak ide o cislo, pouzivam intval alebo nieco pribuzne
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 12.11.08 Prihlásený: 16.05.24 Príspevky: 125 Témy: 30 | 30 |
vytvoril som si testovaci skript, kde je iba MySQL dopyt
Kód: $blabla = mysql_query("SELECT stlpec FROM tabulka WHERE id='$_GET[id]'")
nie je to teda nijak chranene a prepisanim linku v adress bare browsera je mozny sql injection. je tak? potom by teda sql injection mohol vyzerat v adress bare takto Kód: http://www.stranka.sk?id=1';DROP TABLE tabulka
tu je ale moj "problem" alebo skor otazka, ze preco mi to tak nejde? mysql dopyt sa vykona s tou jednotkou, ale dalej ten dopyt proste nepokracuje a ziadny DROP sa nevykona. takisto, ked do skriptu napisem rovno ten dopyt takto Kód: mysql_query("SELECT stlpec FROM tabulka WHERE id='1';DROP TABLE tabulka")
vykona sa iba jeho prva cast, teda SELECT.
ako je to mozne? som teda voci sql injection imunny a ziadne operacie uz s tym $_GET[id] robit nemusim?
|
|
Registrovaný: 14.11.10 Prihlásený: 22.09.17 Príspevky: 129 Témy: 27 | 27 |
misko16 píše: Kód: http://www.stranka.sk?id=1';DROP TABLE tabulka
myslim ze chyba je v tom, ze dotaz DROP TABLE nemas ukonceny bodkociarkou, a taktiez by asi trebalo "odstranit" ukoncovaci apostrof, medzi ktore vkladas premennu '$_GET[id]' skus na koniec dopisat bodkociarku a dve pomlcky, cize Kód: http://www.stranka.sk?id=1';DROP TABLE tabulka; --
EDIT: neviem ako ti to zobere prehliadac, kedze to je link s medzerou, ale ak by si to dal do vstupneho textoveho pola formulara, malo by to ist
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Stránka: 5 z 6
| [ Príspevkov: 153 ] | 1, 2, 3, 4, 5, 6 |
|