Wikipedia:Lua: Forskelle mellem versioner
Content deleted Content added
Honymand (diskussion | bidrag) Separation of concerns |
Honymand (diskussion | bidrag) 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.
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 ====
=== Begrensninger i Wikipedia ===
|