Командная строка для удаления переменной среды из конфигурации уровня ОС

Это то, что я делаю,

  1. На вашем веб-сайте создайте секретную строку. Я использую HMAC (ключ $ _ SERVER ['REMOTE_ADDR'].
  2. Запиши секрет в Javascript var.
  3. В вызове AJAX передайте эту строку в качестве параметра.
  4. На сервере AJAX снова сделайте хэш.

EDIT: примеры кода,

На вашем веб-сайте вы делаете это,

$key = 'supersecretkey'; // This is your security, don't expose this
$nonce = rand();
$timestamp = time();
$signature = hash_hmac('sha1', $_SERVER['REMOTE_ADDR'] . $nonce . $timestamp, $key);

Распечатайте vars на странице,

<script type="text/javascript">
<?php
echo "  var signature = '" . $signature . "';\n";
echo "  var nonce = '" . $nonce . "';\n";   
echo "  var timestamp = '" . $timestamp . "';\n";
?>
</script>

Когда вы совершаете вызов AJAX, передайте 3 параметра на сервер,

  http://example.com?signature=...&nonce=...&timestamp=...

На сервере AJAX , повторите вычисление,

$key = 'supersecretkey'; // This is your security, don't expose this
$nonce = $_REQUEST['nonce'];
$timestamp = $_REQUEST['timestamp'];
$signature = hash_hmac('sha1', $_SERVER['REMOTE_ADDR'] . $nonce . $timestamp, $key);

if ($signature == $_REQUEST['signature'])
   // the call if from my page.

Вы также можете отметить временную метку для валюты и nonce для повтора (требуется сеанс или хранилище данных).

143
задан CupawnTae 5 April 2016 в 17:29
поделиться

1 ответ

Удаляют, Не Перезагружая

, на вопрос OP действительно ответили экстенсивно, включая то, как постараться не перезагружать через powershell, vbscript, или Вы называете его.

Однако, если необходимо придерживаться команд cmd только и не иметь роскоши способности назвать powershell или vbscript, Вы могли использовать следующий подход:

rem remove from current cmd instance
  SET FOOBAR=
rem remove from the registry if it's a user variable
  REG delete HKCU\Environment /F /V FOOBAR
rem remove from the registry if it's a system variable
  REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V FOOBAR
rem tell Explorer.exe to reload the environment from the registry
  SETX DUMMY ""
rem remove the dummy
  REG delete HKCU\Environment /F /V DUMMY

, Таким образом, волшебство здесь состоит в том, что при помощи "setx" для присвоения чего-то переменной Вам не нужно (в моем МАКЕТЕ в качестве примера), Вы вынуждаете Explorer.exe перечитать переменные из реестра, не нуждаясь powershell. Вы затем очищаете тот макет, и даже при том, что тот останется в среде Проводника на некоторое время дольше, это не будет, вероятно, вредить никому.

Или если после удаления переменных необходимо установить новые, затем Вам даже не нужен никакой макет. Просто использование SETX для установки новых переменных автоматически очистит тех, Вы просто удалили из любых новых cmd задач, которые могли бы начать.

Справочная информация: Я просто использовал этот подход успешно для замены ряда пользовательских переменных системными переменными того же имени на всех компьютерах в моем задании путем изменения существующего cmd сценария. Существует слишком много компьютеров, чтобы сделать это вручную, и при этом это не было практично для копирования дополнительного powershell или vbscripts всем им. Причина я срочно должен был заменить пользователя системными переменными, состояла в том, что пользовательские переменные синхронизируются в профилях роуминга (не думал о том), таким образом, несколько машин с помощью того же входа в систему окон, но нуждаясь в различных значениях, были перепутаны.

0
ответ дан 23 November 2019 в 21:50
поделиться
Другие вопросы по тегам:

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