PHP в Powershell - выход

0

Я пытаюсь сделать php-скрипт для изменения паролей пользователей Active Directory, выполнив powershell. http://pastebin.com/XYvSFjPv - для тех, кто хочет посмотреть

Ran в проблему, избегающую кавычек " и ' Моя цель состоит в том, чтобы в полной мере использовать все символы (стандарт utf08), включая кавычки, поскольку я прошел через многие веб-сайты о том, как убежать и до сих пор не пришел к удовлетворительному результату. помогите избежать этих символов, если это вообще возможно, потому что я не нашел никакой функции, чтобы легко избежать символов.

Я запускаю этот скрипт на сервере Windows 2008 с IIS 7, PHP 5.4 и Powershell v1.0

и по наблюдению команда shell_exec() отправляет в командную строку, которая, в свою очередь, запускает powershell (я не уверен, что мне нужно удвоить escape, чтобы сделать эту работу.)

И чтобы убедиться, что ясно, что я хотел бы избежать следующих символов ' и " для Powershell v1.0 с помощью shell_exec() команды.

Теги:
powershell
active-directory
escaping
iis-7

1 ответ

1
Лучший ответ

Самый простой способ передать сложные аргументы Powershell - использовать переключатель -EncodedCommand. Требуется строка параметров кодировки Base64. Для кавычек или любых других странных символов для этого не требуется экранирование. Это обсуждалось в других сообщениях. Php получил функцию base64_encode() которая должна работать.

  • 0
    Это обезоружит также инъекционные атаки?
  • 0
    @Werezwolf Нет , не будет. Base64 сохранит ввод. Powershell будет получать данные, не беспокоясь о { , " и т. П. Проверки работоспособности и ввод данных дезинфекции должны выполняться другими методами.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню