IT NEWS PC REVUE PC FORUMInternet time: @500
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Vyskúšajte Samsung

Hľadáte technológie budúcnosti a skvelý dizajn? Zažite dotyk štýlu. www.samsung.com

Klávesy a piána CASIO, YAMAHA

Predaj klávesov a digitálnych pián. Výhodné ceny, doprava zdarma. www.casallia.sk

Lacný webhosting Kongo.sk

PHP, Mysql, https, SEO, emaily Štatistiky návštevnosti, správa DNS .. www.kongo.sk

Schudla som 15kg za 4 týždne

Zisti tajomstvo perfektnej postavy! Prečítaj si môj príbeh a zisti ako. www.janinblog.com

ITkids

Počítačové krúžky pre deti a mládež. Zaistite svojim deťom lepšiu budúcnosť! www.itkids.sk

Ochrana PHP skriptov a vy

Zaslať odpoveď
AutorSpráva
Tominator
Zablokovaný užívateľ
Zablokovaný užívateľ

Založený: 21.02.2007
Príspevky: 4009

PríspevokZaslal: Št 04.02.10 22:15Odpovedať s citátomNávrat hore

Dnes som natrafil na jednu zaujímavú funkciu, ktorá by mohla toho vyriešiť dosť za nás:
http://php.net/manual/en/function.filter-var.php
Zobraziť informácie o autoroviOdoslať súkromnú správu
frosticek
Zablokovaný užívateľ
Zablokovaný užívateľ

Založený: 12.04.2010
Príspevky: 12

PríspevokZaslal: St 12.05.10 0:09Odpovedať s citátomNávrat hore

miso250593 napísal:
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...
Zobraziť informácie o autoroviOdoslať súkromnú správu
miso250593
Užívateľ
Užívateľ

Založený: 20.03.2008
Príspevky: 566

PríspevokZaslal: St 12.05.10 15:00Odpovedať s citátomNávrat hore

a čo bys tam ešte dal?
Zobraziť informácie o autoroviOdoslať súkromnú správuICQZobraziť autorove WWW stránky
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 927

PríspevokZaslal: Št 13.05.10 7:28Odpovedať s citátomNávrat hore

hm, preco riesite sqlinjection na urovni filrtovania vstupu do php ? keby ste pouzivali prepare http://www.php.net/manual/en/mysqli-stmt.prepare.php tak by " or 1=1" ostalo stale hodnotou a nie sucastou commandu.
Zobraziť informácie o autoroviOdoslať súkromnú správu
stenley
Moderátor
Moderátor

Založený: 27.07.2007
Príspevky: 3715
Bydlisko: Bratislava
Vek: 26

PríspevokZaslal: Št 13.05.10 7:43Odpovedať s citátomNávrat hore

asi preto, lebo nie kazdy ma moznost pouzivat mysqli a hodnoty z $_GET sa nepouzivaju len na pracu s db

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Zobraziť informácie o autoroviOdoslať súkromnú správuICQJabber
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 927

PríspevokZaslal: Št 13.05.10 9:58Odpovedať s citátomNávrat hore

no dobre ale selectovanie typu "select 'a' from table" hadam existuje v MySql
Zobraziť informácie o autoroviOdoslať súkromnú správu
stenley
Moderátor
Moderátor

Založený: 27.07.2007
Príspevky: 3715
Bydlisko: Bratislava
Vek: 26

PríspevokZaslal: Št 13.05.10 10:12Odpovedať s citátomNávrat hore

existuje, ale narazal som na prepared statement (vstavanu funkciu)
mozno niekomu pomoze: SQL Injection Cheat Sheet

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Zobraziť informácie o autoroviOdoslať súkromnú správuICQJabber
coldak
Skúsený užívateľ
Skúsený užívateľ

Založený: 29.10.2008
Príspevky: 927

PríspevokZaslal: Št 13.05.10 12:29Odpovedať s citátomNávrat hore

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;
Zobraziť informácie o autoroviOdoslať súkromnú správu
stenley
Moderátor
Moderátor

Založený: 27.07.2007
Príspevky: 3715
Bydlisko: Bratislava
Vek: 26

PríspevokZaslal: Št 13.05.10 13:02Odpovedať s citátomNávrat hore

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...

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Zobraziť informácie o autoroviOdoslať súkromnú správuICQJabber
rooobertek
Skúsený užívateľ
Skúsený užívateľ

Založený: 09.07.2008
Príspevky: 1582

PríspevokZaslal: Št 13.05.10 19:02Odpovedať s citátomNávrat hore

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!
Zobraziť informácie o autoroviOdoslať súkromnú správu
stenley
Moderátor
Moderátor

Založený: 27.07.2007
Príspevky: 3715
Bydlisko: Bratislava
Vek: 26

PríspevokZaslal: Št 13.05.10 19:16Odpovedať s citátomNávrat hore

nj, ale cudoval by si sa, na kolkych firemnych serveroch je este nainstalovana stara verzia php...

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Zobraziť informácie o autoroviOdoslať súkromnú správuICQJabber
rooobertek
Skúsený užívateľ
Skúsený užívateľ

Založený: 09.07.2008
Príspevky: 1582

PríspevokZaslal: Pi 14.05.10 6:06Odpovedať s citátomNávrat hore

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!
Zobraziť informácie o autoroviOdoslať súkromnú správu
misko16
Užívateľ
Užívateľ

Založený: 12.11.2008
Príspevky: 85

PríspevokZaslal: Št 13.01.11 0:36Odpovedať s citátomNávrat hore

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?
Zobraziť informácie o autoroviOdoslať súkromnú správu
venom2
Užívateľ
Užívateľ

Založený: 14.11.2010
Príspevky: 97

PríspevokZaslal: Št 13.01.11 2:08Odpovedať s citátomNávrat hore

misko16 napísal:

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
Zobraziť informácie o autoroviOdoslať súkromnú správu
stenley
Moderátor
Moderátor

Založený: 27.07.2007
Príspevky: 3715
Bydlisko: Bratislava
Vek: 26

PríspevokZaslal: Št 13.01.11 9:10Odpovedať s citátomNávrat hore

http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/#StackingQueries

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Zobraziť informácie o autoroviOdoslať súkromnú správuICQJabber
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF