W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
默認(rèn)情況下,Deno是安全的。因此 Deno 模塊沒有文件、網(wǎng)絡(luò)或環(huán)境的訪問權(quán)限,除非您為它授權(quán)。在命令行參數(shù)中為 deno 進(jìn)程授權(quán)后才能訪問安全敏感的功能。 在以下示例中,mod.ts 只被授予文件系統(tǒng)的只讀權(quán)限。它無法對其進(jìn)行寫入,或執(zhí)行任何其他對安全性敏感的操作。 deno run --allow-read mod.ts
以下權(quán)限是可用的: -A, --allow-all 允許所有權(quán)限,這將禁用所有安全限制。 --allow-env 允許環(huán)境訪問,例如讀取和設(shè)置環(huán)境變量。 --allow-hrtime 允許高精度時間測量,高精度時間能夠在計時攻擊和特征識別中使用。 --allow-net=<allow-net> 允許網(wǎng)絡(luò)訪問。您可以指定一系列用逗號分隔的域名,來提供域名白名單。 --allow-plugin 允許加載插件。請注意:這是一個不穩(wěn)定功能。 --allow-read=<allow-read> 允許讀取文件系統(tǒng)。您可以指定一系列用逗號分隔的目錄或文件,來提供文件系統(tǒng)白名單。 --allow-run 允許運(yùn)行子進(jìn)程。請注意,子進(jìn)程不在沙箱中運(yùn)行,因此沒有與 deno 進(jìn)程相同的安全限制,請謹(jǐn)慎使用。 --allow-write=<allow-write> 允許寫入文件系統(tǒng)。您可以指定一系列用逗號分隔的目錄或文件,來提供文件系統(tǒng)白名單。
Deno 還允許您使用白名單控制權(quán)限的粒度。 這是一個用白名單限制文件系統(tǒng)訪問權(quán)限的示例,僅允許訪問 /usr 目錄,但它會在嘗試訪問 /etc 目錄時失敗。
$ deno run --allow-read=/usr https://deno.land/std/examples/cat.ts /etc/passwd
error: Uncaught PermissionDenied: read access to "/etc/passwd", run again with the --allow-read flag
? $deno$/dispatch_json.ts:40:11
at DenoError ($deno$/errors.ts:20:5)
...
改為 /etc
目錄,賦予正確的權(quán)限,再試一次:
deno run --allow-read=/etc https://deno.land/std/examples/cat.ts /etc/passwd --allow-write
也一樣,代表寫入權(quán)限。
fetch.ts:
const result = await fetch("https://deno.land/");
這是一個設(shè)置 host 或 url 白名單的示例:
deno run --allow-net=github.com,deno.land fetch.ts
如果 fetch.ts 嘗試與其他域名建立網(wǎng)絡(luò)連接,那么這個進(jìn)程將會失敗。 允許訪問任意地址:
deno run --allow-net fetch.ts
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: