Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
@azure/core-process menyediakan primitif peluncur proses Node.js yang menghindari parsing shell ambient. Aplikasi ini ditujukan untuk paket dan alat Azure SDK yang perlu memanggil executable eksternal di Windows, macOS, atau Linux.
Memulai Langkah Pertama
Pasang paketnya
npm install @azure/core-process
Prasyarat
Konsep Utama
Perintah dan argumen selalu disediakan secara terpisah. Paket ini tidak menyediakan API string perintah dan tidak mengizinkan pemanggil mengaktifkan shell.
import { execFile } from "@azure/core-process";
const { stdout } = await execFile("git", ["rev-parse", "--show-toplevel"]);
console.log(stdout);
Di Windows, native .exe dan .com file lebih disukai. File batch dinonaktifkan secara default karena argumen sembarang tidak dapat dipindahkan dengan aman melalui setiap .cmd atau .bat wrapper. Pemanggil yang mengharapkan batch shim dapat memilih jalur batch terbatas:
import { execFile } from "@azure/core-process";
const { stdout } = await execFile("npm", ["--version"], {
allowWindowsBatchFiles: true,
});
console.log(stdout);
Jalur batch terbatas menolak operator perintah, ekspansi variabel, baris baru, dan nilai lain yang tidak dapat dibuktikan aman sebelum cmd.exe dimulai.
Jika sebuah aplikasi perlu mengirimkan nilai-nilai tersebut, aplikasi harus memanggil titik masuk eksekusi atau interpreter asli secara langsung.
Batas keamanan
Paket ini mencegah data baris perintah diinterpretasikan oleh shell sistem operasi ambient. Dokumen ini tidak menetapkan bahwa executable yang ditemukan pada PATH dapat dipercaya, membersihkan kode yang sengaja diberikan ke interpreter, atau mencegah injeksi opsi khusus perintah.
Jangan menaruh rahasia dalam argumen baris perintah. Argumen proses dapat terlihat oleh proses lokal lain dan diagnostik sistem operasi.
Troubleshooting
Argumen batch Windows yang tidak aman gagal dengan proses ProcessError anak sebelum proses anak dibuat. Lebih memilih executable native ketika argumen tidak dapat diubah.
Contributing
Lihat panduan kontribusi.
Azure SDK for JavaScript