Wikipedia:Lua: Forskelle mellem versioner

Content deleted Content added
Separation of concerns
Husk sikkerhed
Linje 69:
==== Lokalisering ====
Det er altid en god idé at udskille lokalisering af de enkelte sprog på egne sider. For at gøre det enkelt at oversætte fra et sprog til et andet, kan der laves en skabelon<!-- a la [[w:en:Template:Localization subpage]]-->. Denne kan placeres på dokumentationssiden for en lokalisering og forenkler kontrollen af overensstemmelse mellem sprogene. <!-- Et eksempel er [https://en.wikipedia.org/w/index.php?oldid=700445846&diff=700445452 denne forskel mellem to sprogversioner].--> For at gøre det enklere for diff-mekanismen (den mekanisme, der automatisk finder forskelle) at synkronisere mellem sprogene (der er ofte mange forskelle mellem dem), så kan der indsættes nogle kommentarer som angiver, hvad de enkelte blokke omhandler. Disse kommentarer skal være på samme sprog.
 
==== TenkHusk sikkerhetsikkerhed ====
Det er begrænset hvor der kan opstå sikkerhedsproblemer, men generelt skal man arbejde efter de samme regler i Lua som i andre sprog! Filtrer input og escape output; hovedparten af input sendes dog til Lua via serveren og er allerede filtreret.
Det som genereres af Lua-scripts kan imidlertid <!-- er det rigtigt?? --> omgå mekanismerne for automatisk escape af output via "rå" HTML kode og derved udgøre en sikkerhedsrisiko. Hvis du bruger "rå" HTML kode som er det dit ansvar at escape relevante elementer! Vær omhyggelig hvor der konkateneres strenge - alle strenge må escapes for et sikkert resultat. Brug standardbiblioteket for HTML hvor det er mulig ([[mw:Extension:Scribunto/Lua reference manual#HTML library|HTML library]]), og returner wikitekst gennem metoden til dette. Strenge er sikre hvis de returneres uden at være mærkede som "rå" tekst, fordi de så bliver behandlet af mediawiki-softwaren som al anden wikitekst.
 
==== MVC ====
Hvis det modelleres etter paradigmet [[Model–view–controller]] (MVC) så er Lua-script delvis i «model» og «view», men er i liten grad i «controller». Den siste er i hovedsak drevet av Javascript i nettleseren. I noen grad kan Lua bli del av controlleren, men da via serverens API.
 
==== Tenk sikkerhet ====
Det er begrenset hvor det kan oppstå sikkerhetsproblemer, men i hovedsak gjelder de samme reglene i Lua som i andre språk &ndash; filtrer input og escape output. Mesteparten av input når Lua via serverens normale mekanismer og er allerede filtrert. Det som genereres av Lua-scriptene kan imidlertid omgå mekanismene for automatisk escaping via metoder for rå html-kode, og kan dermed representere en sikkerhetsrisiko. Hvis du bruker rå html-kode så må output escapes eksplisitt. Vær påpasselig der strenger konkateneres, alle strenger må escapes skal resultatet være trygt. Bruk standardbiblioteket for html der det er mulig ([[mw:Extension:Scribunto/Lua reference manual#HTML library|HTML library]]), og returner wikitekst gjennom metoden for dette. Strenger er trygge hvis de returneres uten å merke de som rå strenger, da vil de bli prosessert av mediawiki som all annen wikitekst.
 
=== Begrensninger i Wikipedia ===