2017-02-23 54 views
0

Я написал script, который может выполнять код, полученный через ajax с сервера. И я не знаю, может ли кто-нибудь его эксплуатировать? Нужно ли добавлять проверку, что запрос относится к одному домену?Безопасно ли запускать код, полученный через ajax?

+0

Поскольку вы выполняете его на стороне клиента, клиент имеет 100% контроль над тем, что вы отправили. Вопрос в том, защищены ваши данные? – Mistalis

+0

use eval is bad idea :( –

+0

@Mistalis, как я могу защитить? Не знаю об этом – ArtyGrand

ответ

0

Теоретически клиент доверяет предоставленным вами данным, включая код как внутри вашего приложения, так и динамический клиент, который получает аякс. Проблемы могут возникнуть, если кому-то удастся подменять ваш сервер или выполнить атаку «человек в середине» и может начать отправлять вредоносный код. Мое предложение было бы - если у вас есть сомнения в том, что кто-нибудь сможет его эксплуатировать, он, скорее всего, будет использоваться, поскольку вы не знаете, что делаете. Эрго - не делай этого.

0

Вы должны обеспечить код, который отправляется через AJAX, поэтому он не подделан.

Код может быть защищен различными способами. Например, HTTPS. Пользовательское шифрование также может использоваться, например, для кодирования Base64.

+0

Можете ли вы предложить какой-либо способ шифрования с ключом на php и расшифровать его на js? Base64 не подходит здесь, я думаю. – ArtyGrand

+0

Ну base64 кодировка поддерживается изначально как php, так и javascript. Javascript предоставляет функции atob и btoa для кодирования и декодирования base64 string (https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/atob). Php предоставляет функции base64_encode и base64_decode. http://php.net/manual /en/function.base64-encode.php –