Это то, что я делаю,
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=...×tamp=...
На сервере 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 для повтора (требуется сеанс или хранилище данных).
Удаляют, Не Перезагружая
, на вопрос 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 всем им. Причина я срочно должен был заменить пользователя системными переменными, состояла в том, что пользовательские переменные синхронизируются в профилях роуминга (не думал о том), таким образом, несколько машин с помощью того же входа в систему окон, но нуждаясь в различных значениях, были перепутаны.