Poznamky v textu:

Ivan 596 wrote:
> Ranko,
> 
> mohol by sa prosim nejaky bezpecnostny specialista podelit o kroky
> PROGRAMATORA pre bezpecnu java web aplikacie?
> 
> Uvediem svoje (aplikacia je klasicky java-web, jsp, servlet, EE ziadne,
> mozno neskor, Struts):
> 
> 0. Prihlasovanie odosielane cez POST-metodu :-)

Vsechny odesilani formularu by mely jit pres POST metodu, ne jen prihlasovani.
A po POSTu je dobre delat redirect.

> 1. SSL sifrovana komunikacia (to ale asi nie je programtorova starost...)

Castecne je, nesmi se stat, pokud je stejna aplikace pristupna pres
SSL i pres ne-SSL HTTP, aby cookies nastavene pres SSL
byly zasilany i behem ne-SSL spojeni. Takze si programator
musi kontrolovat prepinani mezi SSL a ne-SSL rezimem.

> 2. Osetrenie formularovych vstupov
>      - pre SQL (ak mam v programe kazdy parameter osetreny
> apostrofmi:String dotaz = "SELECT * FROM nieco WHERE id='" + id "',
> staci vlastne len nepovolit vo formularovom vstupe jediny znak: apostrof?)
>      -  treba pre nieco ine osetrovat formularove vstupy, ktore sluzia
> len databaze?

O PreparedStatement a set* metodach uz psali jini, nebu to opakovat.

> 3. Kazda stranka (okrem prihlasovacej) na zaciatku testuje ci existuje
> session s id uzivatela, teda iba uz prihlaseny mozu pristupovat

Je zbytecne duplikovat kod a mit to v kazde strance na zacatku,
mnohem lepsi je udelat si na to Filter mapovany na vsechny stranky
(a pro prihlasovaci v nem mit vyjimku).

> 4. Testovanie vsade, kde sa neocakvaju GET parametre, ci je metoda POST
> 5. Osetrovanie parametrov, napr. ak ocakavam jediny, nieco ako if (
> (request.getParameterMap().size!=1) spolu s testovanim presneho mena a
> hodnoty

Jak uz psal Filip Jirsak, Java neni skriptovaci jazyk, a proti nekterym
typum utoku je z principu odolna.

> 
> oplati sa este nieco??

Jiste, napriklad pokud se vypisuji do stranky data zadana uzivatelem,
vzdycky je treba je prohnat pres neco, co osetri specialni znaky,
napriklad JSTL tag

 <c:out value="${data}"/>

protoze jinak muze zly uzivatel napsat do dat kus JavaScriptu
a delat Cross-Site Scripting utoky.

Pokud uzivatel muze uploadovat soubory, je dobre jim nastavit horni
limit velikosti, aby nemohl poslat 100TB soubor a tak udelat
Denial-of-Service utok.

A hlavne pri kazdem pristupu k datum si kontrolovat, zda na to
ma uzivatel opravneni, protoze zly  uzivatel si muze rucne
vytvaret URL tak, aby volal zpracovani formularu, aniz
by se k formularum musel dostat.


Makub
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno             Martin Kuba
Institute of Computer Science    email: [EMAIL PROTECTED]
Masaryk University             http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
--------------------------------------------------------------

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem