Hvis du, som om 10 millioner andre folk, er En Java-utvikler, vil du sannsynligvis vite hvordan Du holder Java-koden sikker. Utviklere vil alltid trenge å holde seg på toppen av tips og beste praksis for å takle Java-sikkerhetsproblemer.
Java Er det mest populære programmeringsspråket i dag, med god grunn. Java-koden er kryssplattform. Java programmering er mye undervist i universitets informatikk avdelinger. Så mange ivrige øyne programmerere går inn i sine første jobber klar til å kode I Java. Og Java objektorientert design gjør det enkelt å gjenbruke kode.Likevel, til Tross For Javas popularitet, vil du bli hardt presset for å finne noen som vil hevde At Java Er Det sikreste programmeringsspråket der ute. Java sikkerhetsproblemer er ekte. Java ble designet for å være like sikker som de fleste andre populære programmeringsspråk, og den tilbyr funksjoner som SecurityManager for å forbedre sikkerheten i visse sammenhenger. Java-applikasjoner er imidlertid utsatt for en rekke potensielle sikkerhetsproblemer, inkludert, men ikke begrenset til, ulike injeksjonsangrep.
Det er avgjørende For Java-utviklere og administratorer å huske på Vanlige Java – sikkerhetsproblemer når De skriver Og distribuerer Java-applikasjoner. Sikkerhet-først programmering er spesielt viktig Når Det Gjelder Java, fordi Java-kodens kryssplattform betyr AT sikkerhetsrammer PÅ OS-nivå ikke alltid kan stole på å holde applikasjoner sikre.du bør Heller ikke forvente at sluttbrukere skal kunne håndtere Java – sikkerhetstrusler effektivt. Jo, du kan klandre brukerne dine for å kjøre uklarert Java-kode eller deaktivere automatiske oppdateringer til Java-kjøretidene, men til slutt ligger byrden av å skrive sikre Java-applikasjoner og isolere kode i Et Java-miljø som kanskje ikke er sikkert, hos utviklere.
Vanlige Java – sikkerhetsproblemer
Java-programmerere bør ha følgende sikkerhetsutfordringer i bakhodet når De designer Og skriver Java-programmer.
SQL-injeksjoner
SQL-injeksjoner oppstår når en angriper setter inn skadelig SQL-spørringskode i et skjema. Hvis programmet ikke klarer å oppdage den skadelige koden og sender den til en database, kan databasen endres på en skadelig måte, eller sensitive data kan bli utsatt for uautoriserte parter.spredning av automatiserte verktøy for SQL-injeksjoner gjør SQL-injeksjonsangrep en utbredt sikkerhetsutfordring For Java-applikasjoner, og for den saks skyld, nesten hvilken som helst annen type applikasjon som kan koble til en database i dag.
løsningen PÅ SQL-injeksjonsangrep I Java er enkel nok: Sørg for at appen validerer inndata på riktig måte og forhindrer at skadelig kode legges til data som allerede er akseptert i et skjema. Som en generell regel, og der det er mulig, unngå dynamiske spørringer for å redusere risikoen FOR SQL-injeksjoner I Java-programmer. Javas PreparedStatement-klasse kan også være nyttig for å forhindre SQL-angrep.
Java LDAP injeksjoner
Injeksjon angrep som utnytter LIGHTWEIGHT Directory Access Protocol (LDAP) uttalelser representerer en annen vanlig angrep På Java-programmer. Her igjen er inngangsvalidering nøkkelen til å forhindre angrep.Spesielt Kan Java-utviklere hindre de fleste TYPER LDAP-injeksjonsangrep hvis DE unnslipper LDAP-spesialtegn.Vi har allerede dekket SQL-injeksjoner og LDAP-injeksjoner, men injeksjonsangrep i Java-applikasjoner slutter ikke der. Tilkoblingsstrenginjeksjoner, cross-site scripting (XSS) injeksjoner og andre typer angrep er alle mulige.Disse typer angrep gjelder ikke for Alle Java-applikasjoner-XSS er egentlig bare en alvorlig risiko med webapplikasjoner, for eksempel-MEN DE er en annen påminnelse om hvorfor input validering er så viktig.
securitymanager sårbarheter
SecurityManager er utformet slik at du kan kjøre uklarert bytecode sikkert i Java-programmer. SecurityManager sandkasser den bytecode for a hindre angrep.
Dette gjør SecurityManager en stor ressurs For Java-sikkerhet-forutsatt, selvfølgelig, at det fungerer riktig. Den største risikoen For SecurityManager er historien om sikkerhetsproblemer som er oppstått i SecurityManager selv. Disse sikkerhetsproblemene tillater noen ganger isolert kode å bryte ut av sandkassen og utføre angrep.
i en grad er det ikke et problem for utviklere å administrere SecurityManager og Java-sikkerhetsproblemer, men for systemadministratorer, som må holde Java-kjøretider oppdatert. Utviklere kan imidlertid gjøre sin del og unngå sandkasser når det er mulig. Med andre ord, ikke blindt stole SecurityManager. Hvis du må bruke den i et program, bruk det. Men hvis du kan oppnå funksjonaliteten du trenger uten Det, redusere Java sikkerhetsrisiko, og unngå det.Når Et Java-program laster Krukker under kjøring, kan en hacker noen ganger lure programmet til å koble skadelige Krukker. Dette er et gammelt sikkerhetsproblem, Og Java har introdusert en rekke kontroller gjennom årene for å forhindre det.
Noen av disse angrepsbegrensningsfunksjonene virker på egen hånd, men utviklere kan dra full nytte av Dem ved å signere JARs. På den måten blir signaturer verifisert under kjøring og forhindrer inntrenging. Programmerere kan også redusere trusselen fra ondsinnede KRUKKER ved å begrense tilgangsrettighetene til bestemte klasser, slik at hvis ondsinnet kode lastes inn, vil naturlige sikkerhetspolicyer begrense skaden ondsinnet kode kan gjøre.