Mozilla Dest bi Pêkanîna Teknolojiya Veqetandina Pirtûkxaneya RLBox dike

Lêkolînerên ji Zanîngeha Stanford, Zanîngeha California li San Diego û Zanîngeha Texas li Austin pêşxistin tools RLBox, ku dikare wekî qatek îzolasyonê ya zêde were bikar anîn da ku qelsiyên di pirtûkxaneyên fonksiyonê de asteng bike. RLBox armanc e ku pirsgirêka ewlehiyê ya pirtûkxaneyên sêyemîn ên nebawer ên ku ne di bin kontrola pêşdebiran de ne, lê qelsiyên wan dikarin projeya sereke têk bibin.

Şirketa Mozilla plans RLBox-ê di avahiyên Linux-ê yên Firefox 74 û macOS-ê yên Firefox 75-ê de bikar bînin da ku pêkanîna pirtûkxaneyê veqetînin. Graphite, berpirsiyarê pêşkêşkirina tîpan. Lêbelê, RLBox ji Firefox-ê re ne taybetî ye û dikare were bikar anîn da ku pirtûkxane di projeyên kêfî de veqetîne. Pêşketinên RLBox belavbûn di bin lîsansa MIT. RLBox niha platformên Linux û macOS piştgirî dike, digel ku piştgirîya Windows-ê paşê tê çaverê kirin.

Mîkrozîzmê Karê RLBox bi berhevkirina koda C/C++ ya pirtûkxaneyek veqetandî di nav koda WebAssembly ya navîn-asta nizm de ye, ku dûv re wekî modulek WebAssembly tê sêwirandin, destûrên ku tenê bi vê modulê re têkildar têne danîn (mînak, pirtûkxaneyek ji bo pêvajokirina rêzan dê nikaribe soketek torê an pelek veke) . Veguheztina koda C/C++ bo WebAssembly bi kar tê kirin wasi-sdk.

Ji bo pêkanîna rasterast, modula WebAssembly bi karanîna berhevkarek di koda makîneyê de tê berhev kirin Lucet û di "nanopêvajoyek" veqetandî de ku ji bîranîna mayî ya serîlêdanê veqetandî dimeşîne. Berhevkarê Lucet li ser heman kodê wekî motora JIT-ê ye crane lift, di Firefoxê de ji bo pêkanîna WebAssembly tê bikaranîn.

Modula berhevkirî li herêmek bîranînê ya cihê kar dike û bigihîje cîhê navnîşanê yê mayî. Ger qelsiyek di pirtûkxaneyê de were bikar anîn, êrîşkar dê sînordar be û dê nikaribe bigihîje deverên bîranînê yên pêvajoya sereke an veguheztina kontrola li derveyî hawîrdora veqetandî.

Mozilla Dest bi Pêkanîna Teknolojiya Veqetandina Pirtûkxaneya RLBox dike

Agahdariya asta bilind ji bo pêşdebiran têne peyda kirin API, ku dihêle hûn di moda veqetandinê de bangî fonksiyonên pirtûkxaneyê bikin. Rêvebirên WebAssembly hema bêje ti çavkaniyên din hewce nake û danûstendina bi wan re ji bangkirina fonksiyonên asayî ne pir hêdîtir e (fonksiyonên pirtûkxaneyê di forma koda xwemalî de têne darve kirin, û lêçûnên serekî tenê dema kopîkirin û kontrolkirina daneyan di dema danûstendina bi hawîrdora veqetandî re çêdibe). Fonksiyonên pirtûkxaneyê yên veqetandî rasterast nayên gazî kirin û pêdivî ye ku meriv bi karanîna wan vebibe
layer invoke_sandbox_function().

Di encamê de, heke hewce be ku ji pirtûkxaneyê fonksiyonên derveyî bang bikin, divê ev fonksiyon bi karanîna rêbaza register_callback bi eşkere bêne diyar kirin (bi xwerû, RLBox gihîştina fonksiyonan peyda dike pirtûkxaneya standard). Ji bo misogerkirina ewlehiya bîranînê, veqetandina darvekirina kodê ne bes e û pêdivî ye ku herikên daneya vegerî jî werin kontrol kirin.

Nirxên ku di hawîrdorek veqetandî de têne hilberandin wekî karanîna nebawer û sînorkirî têne destnîşan kirin nîşanên qirêj û ji bo "paqijkirinê" ew hewce ne tesdîq û kopîkirina bîranîna serîlêdanê.
Bêyî paqijkirinê, hewildana karanîna daneyên xerakirî di çarçoveyek ku daneyên birêkûpêk hewce dike (û berevajî vê yekê) dibe sedema xeletiyên ku di dema berhevkirinê de têne çêkirin. Argumanên fonksiyonê yên piçûk, nirxên vegerê, û avahî bi kopîkirinê di navbera bîranîna pêvajoyê û bîranîna sandboxê de têne derbas kirin. Ji bo berhevokên daneya mezin, bîranîn di hawîrdorek veqetandî de tê veqetandin û nîşankerek sandbox-referansê rasterast vedigere pêvajoya sereke.

Source: opennet.ru

Add a comment