OWASP ESAPI

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Članovi tima: Danijel Sokač

Sadržaj

Uvod

ESAPI (The OWASP Enterprise Security) je besplatan open-source biblioteka koja omogućuje programerima da lakše implementiraju aplikaciju više razine sigurnosti. Također, ove biblioteke su dobre za daljnji razvoj istih.[1]


OWASP ESAPI verzije imaju identičan dizajn koji se sastoji od[1]:


OWASP ESAPI ima BSD licencu koja sama po sebi dozvoljava korištenje i editiranje ESAPI-ja kako želite. OWASP ESAPI možete uključiti i u komercijalne proizvode.[1]


Sama smisao ove biblioteke je da se olakša implementacija sigurnih aplikacija u raznim programskim jezicima. Kasnije ćemo spomenuti, ali uskoro će se omogućiti suradnja sa drugim programerima da implementiraju ESAPI za neke druge jezike. Korisno je to da je ESAPI moguće koristiti na koji način se želi, a isto tako je super da se može uključiti u komercijalne proizvode.

Informacije o projektu ESAPI

OWASP Enterprise Security API (ESAPI) su alati koji pomažu developerima da se obrane od sigurnosnih propusta u njihovim aplikacijama. ESAPI je arhitekturalno jednostavan. To je skup klasa koje sadrže sigurnosne operacije potrebne većini aplikacija i njihova implementacija je sakrivena u klasama. Ovaj projekt je stvoren kako bi se olakšala ugradnja sigurnosti u postojeće aplikacije,a isto tako kako bi se olakšala implementacija sigurnosti u nove aplikacije. ESAPI se dobiva zajedno sa ESAPI filterom koji minimizira promjene potrebne za aplikaciju.[2]

Aktivni su projekti za slijedeće platforme: [2]

  1. Java EE
  2. .NET
  3. PHP - nema još nijedne verzije
  4. Ruby
  5. Python
  6. Coldfusion
  7. Swingset - web aplikacija koja demonstrira korištenje OWASP ESAPI-ja
  8. ASP


OWASP ESAPI projekt je dosta velika pomoć developerima kada je u pitanju implementacija sigurnosti u aplikaciju. Postoji dosta aplikacija koje imaju sigurnosne propuste ili zato jer developer nema volje da implementira sigurnost ili zato jer nema potrebnog znanja da vidi da u njegovom kodu postoje sigurnosne prijetnje. Bilo bi poželjno razviti ESAPI za najpopularnije programske jezike, a isto tako za sve ostale.

Sudjelovanje u OWASP ESAPI projektu

Nema nekih posebnih informacija o tome kako se prijaviti za koji projekt, međutim može se svesti na par koraka koje sam predvidio.

  1. Pronaći ima li već neka stranica za platformu koja je zanimljiva
  2. Pregledati stranicu za tu platformu na OWASP-u
  3. Pretplatiti se za mailing listu za tu platformu
  4. Javiti se menadžeru projekta


Ako ne postoji još projekt za platformu koja Vam je zanimljiva, možete pokrenuti projekt za tu platformu.

ESAPI specifikacije

Specifikacije za jezgru API-ja

Slijedeće komponente i opisi su preuzeti sa stranice navedene pod rednim brojem 3 u literaturi.

AccessController

Ovaj kontroler je zaslužan za odlučivanje ima li prijavljeni korisnik ovlasti pristupa navedenom resursu. Resurs je bilo što što implementira sučelje Resource.


Tipovi podataka

Parametar Objašnjenje
R klasa koja implementira sučelje Resource i predstavalja resurs kojem korisnik pristupa
Context bilo koji objekt koji predstavlja trenutni kontekst zahtjeva za autorizaciju - općenito je formatiran kao ključ-vrijednost

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • <R extends Resource,Context> void AssertAuthorized(Resource resource, Context context)
    Potvrđuje da prijavljen korisnik može pristupiti resursu sa danim parametrima iz konteksta
Tipovi podataka - -
Parametri resource Resurs kojem korisnik pokušava pristupiti.
context Kontekst zahtjeva. Može biti bilo koji objekt. Primjerice, ako korisnik zahtjeva pristup podacima, kontekst može biti identifikator resursa
Iznimke AccessDeniedException Ako se dobije da korisnik nije autoriziran za pristup resursu. Također, AccessControlException će ispisati razloge pojave iznimke.
Vraća - -
  • <R extends Resource,Context> boolean isAuthorized(Resource resource, Context context)
    Odlučuje može li prijavljen korisnik pristupiti danom resursu.
Tipovi podataka - -
Parametri resource Resurs kojem korisnik pokušava pristupiti.
context Kontekst zahtjeva. Može biti bilo koji objekt. Primjerice, ako korisnik zahtjeva pristup podacima, kontekst može biti identifikator resursa
Iznimke - -
Vraća true/false Vraća true ako je korisnik autoriziran za navedeni resurs inače vraća false.

AccessReferenceMap<Key>

Ovo sučelje se koristi za mapiranje skupa direktnih referenci objekata na skup indirektnih referenci objekata. Ovo sučelje može pomoći u zaštiti ključeva tablice podataka, naziva datoteka i drugih tipova direktnih referenci objekata. Developeri ne bi smjeli izložiti direktne reference objekata jer to omogućuje napadačima da pokušaju manipulirati tim objektima.

Indirektne reference objekata se obrađuju kao stringovi. Implementacija može generirati ili jednostavne brojeve ili kompliciranije slučajne nizove znakova. Trebalo bi implementirati konstruktor koji prihvaća skup direktnih referenci kao parametar.

Prednost ovog zahtjeva ESAPI-ja je ako se koriste slučani nizovi znakova kao indirektne reference, onda napadač teško može otkriti stvarni identifikator resursa. Ukoliko se ovo sučelje primjenjuje za svakog korisnika, onda se sprječavaju i CSRF napadi.

Tipovi podataka

Parametar Objašnjenje
Key Tip podatka objekta koji će se koristiti kao ključ u sučelju AccessReferenceMap.

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • <Type> Key addDirectReference(Type direct)
    Dodaje direktnu referencu u AccessReferenceMap te generira i vraća indirektnu referencu za proslijeđenu direktnu referencu.
Tipovi podataka Type Tip za direktnu referencu.
Parametri direct Direktna referenca objekta
Iznimka - -
Vraća Key Indirektnu referencu tipa Key.
  • <Type> Type getDirectReference(Key key)
    Dohvaća direktnu referencu objekta koristeći indirektnu referencu.
Tipovi podataka Type Tip za direktnu referencu.
Parametri key Indirektna referenca objekta
Iznimka AccessDeniedException Ako zahtijevana referenca ne postoji ili podrazumijevani tip nije ispravan.
Vraća Type Direktnu referencu tipa Type.
  • <Type> Key getIndirectReference(Type directReference)
    Dohvaća sigurni indirektnu referencu da bi se koristila umjesto potencijalno osjetljive direktne reference.
Tipovi podataka Type Tip za direktnu referencu.
Parametri direct Direktna referenca objekta
Iznimka - -
Vraća Type Indirektnu referencu tipa Type.
  • <Type> Key removeDirectReference(Type directReference)
    Briše direktnu referencu i sve njezine indirektne reference iz AccessReferenceMap-e.
- - -
  • <Type> void update(Set<Type> directReferences))
    Ažurira mapu sa referencama pristupa sa novim skupom direktnih referenci, čuvajući svaku postojeću indirektnu referencu povezanu sa elementima koji se nalaze u novom skupu.
- - -

Authenticator

Methode


Metoda Specifikacije
Tipovi Objašnjenje
  • User login()
Tipovi podataka User Tip za korisnika
Parametri - -
Iznimka AutenticationException Ako nije uspjela prijava korisnika.
Vraća User Prijavljen korisnik
  • void logout()
Tipovi podataka - -
Parametri - -
Iznimka AutenticationException Ako nije uspjela odjava korisnika.
Vraća - -

Codec

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • String encode(char c)
Tipovi podataka - .
Parametri c Karakter za enkodiranje.
Iznimka - -
Vraća String Enkodirani niz znakova.
  • String decode(String s)
Tipovi podataka - -
Parametri s Enkodirani niz znakova.
Iznimka - -
Vraća String Dekodirani niz znakova.

Encoder

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • String encode(String s)
Tipovi podataka - .
Parametri s Niz znakova za enkodiranje.
Iznimka - -
Vraća String Enkodirani niz znakova.
  • String decode(String s)
Tipovi podataka - -
Parametri s Enkodirani niz znakova.
Iznimka - -
Vraća String Dekodirani niz znakova.
  • void addCodec(Codec c)
Tipovi podataka - -
Parametri c Codec
Iznimka - -
Vraća - -
  • Set<Codec> getCodecs()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Set<Codec> Skup codec-a.
  • void setCodecs(Set<Codec> codecs)
Tipovi podataka - -
Parametri codecs Skup codec-a.
Iznimka - -
Vraća - -

Encryptor

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • PlainText decrypt(CipherText cipherText, SecretKey secretKey)
Tipovi podataka - .
Parametri cipherText Kriptirani tekst
secretKey Tajni ključ za kriptiranje.
Iznimka EncryptionException Ako je došlo do greške u dekripciji.
Vraća PlainText Dekriptirani tekst.
  • CipherText encrypt(PlainText plainText, SecretKey secretKey)
Tipovi podataka - -
Parametri plainText Čisti razumljiv tekst.
secretKey Tajni ključ za kriptiranje.
Iznimka EncryptionException Ako je došlo do greške u enkripciji.
Vraća CipherText Kriptirani niz znakova.
  • MessageDigest hash(PlainText plainText, Salt salt, Integer iterations)
Tipovi podataka - -
Parametri plainText Čisti razumljiv tekst.
salt Niz znakova koji pomaže u sažimanju.
iterations Iteracije kod sažimanja.
Iznimka EncryptionException Ako se javi greška kod sažimanja.
Vraća MessageDigest Sažetak teksta.
  • String seal(String data, Long timestamp) throws EncryptionException
Tipovi podataka - -
Parametri data Niz znakova za digitalni pečat.
timestamp Vrijeme kreiranja digitalnog pečata.
Iznimka EncryptionException Ako se javi greška kod kreiranja digitalnog pečata.
Vraća String Digitalni pečat.
  • String sign(String data)
Tipovi podataka - -
Parametri data Niz znakova za digitalni potpis.
Iznimka EncryptionException Ako se javi greška kod kreiranja digitalnog potpisa.
Vraća String Digitalni potpis.
  • String unseal(String sealedData)
Tipovi podataka - -
Parametri sealedData Digitalni pečat.
Iznimka EncryptionException Ako se javi greška prilikom otvaranja digitalnog pečata.
Vraća String Razumljivi podaci.
  • void verifySeal(String sealedData)
Tipovi podataka - -
Parametri sealedData Digitalni pečat.
Iznimka DataIntegrityException Ako digitalni pečat nije validan.
Vraća - -
  • void verifySignature(String signature, String data)
Tipovi podataka - -
Parametri signature Digitalni potpis.
data Podaci sa kojima je kreiran digitalni potpis.
Iznimka InvalidSignatureException Ako digitalni potpis nije valjan.
Vraća - -

Executor

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • ExecutorResult executeSystemCommand(ExecutorTarget target, Encoder encoder)
Tipovi podataka - .
Parametri target Ciljan objekt.
encoder Encoder.
Iznimka ExecutionException Greška prilikom izvršavanja sustavske naredbe.
Vraća ExecutionResult Rezultat izvršavanja naredbe.

ExecutorResult

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • String getErrorOutput()
Tipovi podataka - .
Parametri - -
Iznimka - -
Vraća String Tekst pogreške.
  • String getStandardOutput()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća String Rezultat izvršavanja naredbe.
  • Integer getExitValue()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Integer Vrijednost koju je vratila naredba pri izlaženju iz programa.

ExecutorTarget

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • native FileHandle getExecutable()
Tipovi podataka - .
Parametri - -
Iznimka - -
Vraća FileHandle Datoteku koja se može izvršavati.
  • native Handle getWorkingDirectory()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Handle Radni direktorij.
  • OrderedMap<String,String> getParameters()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća OrderedMap<String, String> Parametri formatirani u obliku ključ-vrijednost.

IntrusionDetector

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • void addEvent(String eventName, String message)
Tipovi podataka - .
Parametri eventName Naziv događaja.
message Poruka.
Iznimka - -
Vraća - -
  • void addException(Throwable exception)
Tipovi podataka - -
Parametri exception Greška.
Iznimka - -
Vraća - -

LogFactory

U izradi...

Logger

U izradi...

Randomizer

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • Boolean getRandomBoolean()
Tipovi podataka - .
Parametri - -
Iznimka - -
Vraća Boolean Slučajan true ili false izbor.
  • Byte[] getRandomBytes(Integer len)
Tipovi podataka - -
Parametri len Duljina niza bajtova.
Iznimka - -
Vraća Byte[] Niz bajtova duljine koja je navedena kao parametar.
  • String getRandomFilename(String extension)
Tipovi podataka - -
Parametri extension Ekstenzija datoteke.
Iznimka - -
Vraća String Slučajan naziv datoteke sa navedenom ekstenzijom.
  • String getRandomUUID()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća String Slučajan ID korisnika.
  • Integer getRandomInteger(Integer min, Integer max)
Tipovi podataka - -
Parametri min Miniminalni broj.
max Maksimalni broj.
Iznimka - -
Vraća Integer Slučajan broj između min i max.
  • Long getRandomLong(Long min, Long max)
Tipovi podataka - -
Parametri min Minimalan broj.
max Maksimalan broj.
Iznimka - -
Vraća Long Slučajn broj između min i max.
  • Float getRandomReal(Float min, Float max)
Tipovi podataka - -
Parametri min Miniminalni broj.
max Maksimalni broj.
Iznimka - -
Vraća Float Slučajan broj između min i max.
  • String getRandomString(Integer len, char[] charSet)
Tipovi podataka - -
Parametri len Duljina niza znakova.
charSet Skup znakova.
Iznimka - -
Vraća String Slučajan niz znakova iz charset duljine len.

Resource

Sučelje za resurse do kojih korisnici mogu tražiti pristup.

ServiceLocator

Trenutno nema informacija...

User

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • <Type> Type getAccountID()
Tipovi podataka Type Tip podatka korisničkog ID-a.
Parametri - -
Iznimka - -
Vraća Type Identifikacijski podatak korisnika.
  • String getAccountName()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća String Naziv računa korisnika.
  • Long getExpirationTime()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Long Niz brojeva koji predstavljaju rok isticanja.
  • Integer getFailedLoginCount()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Integer Broj pogrešnih prijava.
  • Long getLastFailedLoginTime()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Long Vrijeme zadnje neuspješne prijave
  • String getLastHostAddress()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća String Posljednji IP sa kojeg se pristupa.
  • Long getLastLoginTime()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Long Vrijeme zadnje prijave.
  • Long getLastPasswordChangeTime()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Long Posljednje vrijeme promjene lozinke.
  • String getLocale()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća String Reprezentacija trenutne lokacije
  • Set<String> getRoles()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Set<String> Skup rola koje se odnose na prijavljenog korisnika.
  • String getScreenName()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća String Vraća ime koje se prikazuje javno na stranici.
  • Boolean isAnonymous()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Boolean True ako je anoniman i false ako nije.
  • Boolean isEnabled()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Boolean Veća true ako je korisnik dostupan, a false ako nije.
  • Boolean isExpired()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Boolean True ako je istekao rok i false ako nije.
  • Boolean isInRole(String role)
Tipovi podataka - -
Parametri role Naziv uloge korisnika.
Iznimka - -
Vraća Boolean Veća true ako korisnik ima tu ulogu, i false ako nema.
  • Boolean isLocked()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Boolean True ako je korisnik zaključan i false ako nije.
  • Boolean isLoggedIn()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Boolean Veća true ako je korisnik prijavljen, i false ako nije.

Validator

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • <Type> Boolean isValid(Type data)
Tipovi podataka Type Klasa tipa Type od podatka koji se validira.
Parametri - -
Iznimka - -
Vraća Boolean Vraća true ako su podaci ispravni ili false ako nisu.
  • <Type> void assertValid(Type data)
Tipovi podataka Type Klasa tipa Type od podatka koji se validira.
Parametri data Podatak koji se validira.
Iznimka - -
Vraća - -

Exceptions

Specifikacije za web API

Ovaj API opisuje komponente koje se mogu koristiti za web aplikacije.

ClientCookie

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • String getName()
Tipovi podataka - .
Parametri - -
Iznimka - -
Vraća String Naziv kolačića.
  • void setName(String name)
Tipovi podataka - -
Parametri name Naziv koji želimo staviti za kolaćića.
Iznimka - -
Vraća - -
  • String getValue()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća String Vrijednost kolačića.
  • void setValue(String value)
Tipovi podataka - -
Parametri value Vrijednost koja se želi spremiti u kolačić.
Iznimka - -
Vraća - -
  • Integer getMaxAge()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Integer Vraća vrijednost maksimalnog trajanja kolačića.
  • void setMaxAge(Integer maxAge)
Tipovi podataka - -
Parametri maxAge Maksimalno trajanje kolačića koje želimo postaviti.
Iznimka - -
Vraća - -
  • String getDomain()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća String Domena kolačića.
  • void setDomain(String domain)
Tipovi podataka - -
Parametri domain Naziv domene koju želimo postaviti u kolačiću.
Iznimka - -
Vraća - -
  • String getPath()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća String Putanja kolačića.
  • void setPath(String path)
Tipovi podataka - -
Parametri path Putanja kolačića.
Iznimka - -
Vraća - -
  • Boolean isHttpOnly()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Bolean True ako jeste samo http, ako ne false.
  • void setHttpOnly(Boolean httpOnly)
Tipovi podataka - -
Parametri httpOnly true ako jeste samo http, i false ako nije.
Iznimka - -
Vraća - -
  • Boolean isSecure()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća Bolean True ako jeste sigurni, ako ne false.
  • void setSecure(Boolean secure)
Tipovi podataka - -
Parametri secure true ako se želi secure postaviti, i false ako ne.
Iznimka - -
Vraća - -

SecureHttpRequest

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • void assertSecureChannel()
Tipovi podataka - .
Parametri - -
Iznimka - -
Vraća - -
  • void assertSecureRequest()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća - -
  • ClientCookie getCookie(String name)
Tipovi podataka ClientCookie Tip podatka kolačića.
Parametri name Naziv kolačića.
Iznimka - -
Vraća ClientCookie Vrijednost kolačića pod danim imenom.
  • List<FileHandle> getFileUploads()
Tipovi podataka FileHandle Upravitelj datotekom
Parametri - -
Iznimka - -
Vraća List<FileHandle> Skup uploadanih datoteka
  • <T> T getAttribute(String name)
Tipovi podataka T Klasa generičkog tipa T, istog tipa koji je i atribut.
Parametri name Naziv atributa HTTP zahtjeva.
Iznimka - -
Vraća T Traženi atribut HTTP zahtjeva.
  • String getHeader(String header)
Tipovi podataka - -
Parametri header Zaglavlje zahtjeva.
Iznimka - -
Vraća String Zaglavlje HTTP zahtjeva.
  • String getParameter(String name)
Tipovi podataka - -
Parametri name Naziv parametra HTTP zahtjeva.
Iznimka - -
Vraća String Vrijednost parametra HTTP zahtjeva.
  • void sendForward(String url)
Tipovi podataka - -
Parametri url tekst URL-a.
Iznimka - -
Vraća - -
  • void verifyCsrfToken()
Tipovi podataka - -
Parametri - -
Iznimka CsrfException Ako CSRF token nije validan.
Vraća - -

SecureHttpResponse

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • void addCookie(ClientCookie cookie)
Tipovi podataka - .
Parametri cookie Kolačić koji želimo dodati u odgovor.
Iznimka - -
Vraća - -
  • void addHeader(String key, String value)
Tipovi podataka - -
Parametri key ključ parametra
value Vrijednost parametra.
Iznimka - -
Vraća - -
  • void killCookies()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća - -
  • void sendRedirect(String url)
Tipovi podataka - -
Parametri url URL za preusmjeravanje.
Iznimka - -
Vraća - -
  • void setContentType(String contentType)
Tipovi podataka - -
Parametri contentType Tip sadržaja odgovora.
Iznimka - -
Vraća - -
  • void setNoCacheHeaders()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća - -

SecureHttpSession

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • <T> T getAttribute(String key)
Tipovi podataka T Clasa generičkog tipa, istog koji je i atribut.
Parametri key Ključ parametra sesije.
Iznimka - -
Vraća T Vrijednost atributa sesije čiji ključ se proslijedio.

URLResource

Extends

WebUser

Metode

Metoda Specifikacije
Tipovi Objašnjenje
  • String getCsrfToken()
Tipovi podataka - .
Parametri - -
Iznimka - -
Vraća String CSRF token kao string
  • void resetCsrfToken()
Tipovi podataka - -
Parametri - -
Iznimka - -
Vraća - -
  • void addSession(SecureHttpSession session)
Tipovi podataka - -
Parametri session HTTP sesija.
Iznimka - -
Vraća - -
  • void removeSession(SecureHttpSession session)
Tipovi podataka - -
Parametri session HTTP sesija.
Iznimka - -
Vraća - -

Specifikacije za mobilni API

Nema informacija..

Specifikacije za desktop API

Nema informacija...

ESAPI upute za sigurno pisanje koda

Tipičan popis ESAPI sigurnosnih zahtjeva za web aplikacije koji pokazuje kako koristiti ESAPI za implementaciju. Svi oni sigurnosni zahtjevi,s kojima se automatski upravlja su izbačeni iz liste. Slijedi popis koji je uzeti sa stranice pod linkom 4 u literaturi.

Autentikacija

Upravljanje sesijama

Kontrola pristupa

Validacija input-a

Enkodiranje

Zaštita podataka

Sigurno korištenje servisa

Trenutno nema podataka.

Upravljanje greškama

Trenutno nema podataka.

Pisanje dnevnika i detekcija upada

Trenutno nema podataka.

Sigurne postavke i razvoj

Izbjegavanje specifičnih prijetnji

Cross site scripting (XSS)

Trenutno nema podataka.

Cross site request forgery (CSRF)

Trenutno nema podataka.

Problemi sa sigurnošću dretvi

Denial of service (DoS)

Trenutno nema podataka.

Zaključak

OWASP ESAPI projekti su jako korisna stvar za svakog developera. Dosta je dobro da drugi isprogramiraju sigurne komponente koje onda programer samo uključi u svoju aplikaciju i ne mora voditi brigu o tome. O sigurnosti tih komponenti se i dalje brinu suradnici na OWASP ESAPI projektu koji rade na razvoju sigurnih komponenata za tu platformu.

Često je problem ugradnja sigurnosnih zahtjeva u aplikaciju jer programeri neki puta zanemare taj aspekt ili nemaju znanja o njemu. Pa se često dogodi da mnogo aplikacija bude hakirano ili srušeno.

Sigurnost je jako bitan dio aplikacija isto kao i sigurnost podataka korisnika aplikacije. OWASP ESAPI se upravo brine o tome da aplikacija ima implementirane sigurnosne mjere. ESAPI ima definirane komponente koje se trebaju isprogramirati za svaku platformu te je u tijeku izrada mjera protiv nekih specifičnih napada. Kod ovih projekata je jako bitno uzeti u obzir i korisničke priče ali i "hakerske" priče kako bi sam projekt bio uspješan. Nikako se ne smije oglušiti na prijave grešaka u radu od strane korisnika, jer one mogu nositi sigurnosne rupe i moguće buduće probleme.

Literatura

  1. Category:OWASP Enterprise Security API, https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API , pristupljeno 19.12.2015.
  2. Project Information: OWASP Enterprise Security API Project, https://www.owasp.org/index.php/Project_Information:_OWASP_Enterprise_Security_API_Project, pristupljeno 19.12.2015.
  3. ESAPI Specification, https://www.owasp.org/index.php/ESAPI_Specification, pristupljeno 20.12.2015.
  4. ESAPI Secure Coding Guideline, https://www.owasp.org/index.php/ESAPI_Secure_Coding_Guideline, pristupljeno 22.12.2015.


Danijel.sokac.2015 23:29, 18. prosinca 2015. (CET)

Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima