Jawaban:
Tidak juga, tidak. Itu adalah ibu dari semua lubang keamanan. Anda bertanya apakah Anda dapat mengatur halaman web yang mengeksekusi perintah sewenang-wenang pada mesin klien. Bagaimana jika saya mengatur halaman web yang menjalankan perintah ini:
rm -rf ~/
Itu akan menghapus semua file di file Anda $HOME
. Bahkan, baru-baru ini ada keributan ketika bug ditemukan yang memungkinkan ini terjadi. Salah satu vektor serangan yang mungkin adalah menipu klien (komputer B dalam kasus Anda) agar menjalankan perintah bash.
Jadi tidak, Anda tidak dapat mengeksekusi kode arbitrer pada mesin lokal Anda melalui browser web. Bukan tanpa masuk entah bagaimana terlebih dahulu. Anda dapat menjalankan JavaScript atau perintah bahasa serupa tetapi mereka tidak akan memiliki akses ke sesi pengguna Anda.
Anda tidak dapat melakukan itu secara umum, tetapi dalam lingkungan yang ditentukan, di mana Anda dapat mengontrol mesin klien B, Anda dapat mengusulkan bahwa mesin B menjalankan layanan setroot, Anda hanya dapat menulis sendiri dengan nodejs atau golang misalnya dan berbicara dengan itu layanan saat Anda menerima acara. Tetapi dalam hal apa pun Anda tidak memiliki peluang (atau setidaknya Anda seharusnya tidak memiliki kesempatan) jika Anda tidak menginstal beberapa layanan tambahan pada mesin B.
run("whatever command on machine B");
?
Saya menyelesaikannya menggunakan server nodeJS. (tidak bersih / kode final tetapi berfungsi)
Komputer A: (server)
function change_wallpaper(image){
var objReq = new XMLHttpRequest();
objReq.open("GET", "http://localhost:8888" + "?image=" + image, false);
objReq.send(null);
}
<img src="./img/1.jpeg" onclick="change_wallpaper(this.src);" />
<img src="./img/2.jpeg" onclick="change_wallpaper(this.src);" />
Komputer B: file (klien) yang disebut server.js
ans dieksekusi dengannodejs server.js
var http = require("http");
var sys = require('sys')
var exec = require('child_process').exec;
var url = require("url");
function onRequest(request, response) {
var params = url.parse(request.url,true).query;
function puts(error, stdout, stderr) {sys.puts(stdout)}
exec("/usr/bin/feh --bg-center " + params.image, puts);
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Wallpaper');
}
http.createServer(onRequest).listen(8888);
PHP dapat mengubah konten file teks melintasi browser misalnya di /var/www/.../folder/mytextfie.txt Anda hanya perlu mendapatkan string dari file itu, whitch dapat berupa perintah atau bahkan perintah untuk memulai file skrip .
cronjob dapat dijalankan untuk memeriksa apakah textfile mengandung executable.
#!/usr/bin/env bash
echo $(cat /var/www/.../folder/commandsperline.txt)
#or
while read line
do
echo "$(${line})"
done< "/var/www/.../folder/commandsperline.txt"
konteks file teks itu:
#!/bin bash
#you need to declare absolute path
# chmod 755 /home/user/*.sh -to make executabble all scripts there
/home/user/backup.sh
/home/user/anyscript.sh
Dengan te while loop dimungkinkan untuk menjalankan perintah dari file teks itu.
Ya .. itu mungkin dengan neutralinojs .
Anda bisa menggunakannya Neutralino.os.runCommand()
. Tetapi dalam skenario Anda, mode cloud Neutralino dapat digunakan.