Что cmd/powershell эквивалентен из задней галочки на ударе?

** Предупреждение: подход, описанный в этом ответе, применим только к очень конкретным сценариям и не является безопасным, поскольку атаки SQL-инъекции не только полагаются на возможность вставлять X=Y. **

Если злоумышленники пытаются взломать форму с помощью переменной PHP $_GET или с помощью строки запроса URL, вы сможете поймать их, если они не защищены.

RewriteCond %{QUERY_STRING} ([0-9]+)=([0-9]+)
RewriteRule ^(.*) ^/track.php

Поскольку 1=1, 2=2, 1=2, 2=1, 1+1=2 и т. д. ... являются распространенными вопросами к базе данных SQL злоумышленника. Возможно, он также используется многими хакерскими приложениями.

Но вы должны быть осторожны, чтобы не переписывать безопасный запрос с вашего сайта. Вышеупомянутый код дает вам возможность переписать или перенаправить (зависит от вас) эту динамическую строку запроса, зависящую от хакерства, на страницу, в которой будет храниться IP-адрес злоумышленника или EVEN THEIR COOKIES, история , браузера или любой другой конфиденциальной информации, поэтому вы можете иметь дело с ними позже, запретив их учетную запись или контактные органы.

66
задан Cœur 10 September 2017 в 06:22
поделиться

3 ответа

Синтаксис PowerShell основан на POSIX ksh синтаксис (и интересно не на любом из языков Microsoft как CMD.EXE, VBScript или Visual Basic for Applications), столько вещей работает в значительной степени то же в Bash. В Вашем случае замена команды сделана с

echo "Foo $(./print_5_As.rb)"

и в PowerShell и в Bash.

Bash все еще поддерживает древний путь (обратные галочки), но PowerShell очистил синтаксис и удалил избыточные конструкции, такие как два различных синтаксиса замены команды. Это освобождает обратную галочку для отличающийся использование в PowerShell: в POSIX ksh, обратная косая черта используется в качестве символа ESC, но это было бы очень болезненно в PowerShell, потому что обратная косая черта является традиционным разделителем компонента контура в Windows. Так, PowerShell использует (теперь неиспользованный) обратная галочка для выхода.

129
ответ дан Raúl Salinas-Monteagudo 24 November 2019 в 14:51
поделиться

В CMD.EXE нет никакого прямого эквивалента. Но можно использовать команду FOR для достижения того, что Вы хотите.

Делают что-то как следующее:

FOR /F "usebackq" %x IN (`./print_5_As.rb`) DO @echo Foo %x

или

FOR /F %x IN ('"./print_5_As.rb"') DO @echo Foo %x

Вы, возможно, должны были бы установить разделитель на что-то еще, чем значение по умолчанию, в зависимости от того, как вывод смотрит и как Вы хотите использовать его. Больше деталей, доступных в ДЛЯ документации в https://technet.microsoft.com/en-us/library/bb490909.aspx

25
ответ дан matli 24 November 2019 в 14:51
поделиться

В Powershell Вы используете $ () для оценки подвыражений...

, Например:

PS C:\> "Foo $(./print_5_As.rb)"
Foo AAAAA
24
ответ дан Pete Richardson 24 November 2019 в 14:51
поделиться
Другие вопросы по тегам:

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