Выполнение команды оболочки при событии щелчка на веб-странице

если я не неправильно понимаю Вас, Вы только хотите найти файлы в каталоге не подкаталогами. Если это - Ваше намерение, вот решение

find . -type f

если Вы хотите найти кроме регулярных файлов (как файлы блочного устройства, файлы устройства посимвольного ввода-вывода и т.д.) затем см. страницу справочника для find управляйте и ищите ключевое слово типа на той странице. Вы будете видеть различные типы файлов, включая регулярные файлы и каталоги и т.д.

Надежда это - то, что Вы ищете

10
21.06.2015, 16:26
5 ответов

Я решаю это с помощью сервера nodeJS. (не чистый/окончательный код, а его работа)

Компьютер A : (сервер)

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);" />

Компьютер B : (клиент) файл с именем server.js ans выполняется с именем nodejs 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);
3
27.01.2020, 20:02

Не совсем, нет. Это мать всех дыр в безопасности. Вы спрашиваете, можно ли настроить веб-страницу, которая будет выполнять произвольные команды на машине клиента. Что, если я установлю веб-страницу, которая выполнит эту команду:

rm -rf ~/

, которая удалит все файлы в вашем $HOME. На самом деле, недавно был скандал, когда была обнаружена ошибка , которая позволила этому случиться. Одним из возможных векторов атаки был обман клиента (в вашем случае компьютера B) с целью выполнения команды bash.

Так что нет, вы не можете выполнить произвольный код на локальной машине через веб-браузер. Не без входа в систему сначала. Вы можете запустить JavaScript или подобные команды языка, но они не будут иметь доступа к сеансу пользователя.

5
27.01.2020, 20:02

Вы не можете этого сделать в целом, но в определенной среде, где вы можете управлять клиентской машиной B, вы можете предложить, чтобы машина B запускала службу setroot, вы можете просто писать самостоятельно, например, с помощью nodejs или golang и поговорите с этой службой, когда получите событие. Но в любом случае у вас не будет шанса (или, по крайней мере, у вас никогда не будет шанса), если вы не установите дополнительную службу на машине B.

3
27.01.2020, 20:02

PHP может изменять содержимое текстовых файлов через браузер, например, в /var/www/.../folder/mytextfie.txt. Вам нужно только получить строку из этого файла, которая может быть командой или даже командой для запуска файла сценария.

Задание cron может запускаться для проверки того, содержит ли этот текстовый файл какие-либо исполняемые файлы.

#!/usr/bin/env bash
echo $(cat /var/www/.../folder/commandsperline.txt)
#or 
while read line
    do
    echo "$(${line})"
done< "/var/www/.../folder/commandsperline.txt"

контекст этого текстового файла:

#!/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

С помощью цикла while можно выполнять команды из этого текстового -файла.

1
27.01.2020, 20:02

Да.. можно с нейтралиной .

Вы можете использовать Neutralino.os.runCommand(). Но в вашем сценарии можно использовать облачный режим Neutralino.

1
27.01.2020, 20:02

Теги

Похожие вопросы