** Предупреждение: подход, описанный в этом ответе, применим только к очень конкретным сценариям и не является безопасным, поскольку атаки 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, история , браузера или любой другой конфиденциальной информации, поэтому вы можете иметь дело с ними позже, запретив их учетную запись или контактные органы.
Синтаксис 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 использует (теперь неиспользованный) обратная галочка для выхода.
В 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
В Powershell Вы используете $ () для оценки подвыражений...
, Например:
PS C:\> "Foo $(./print_5_As.rb)"
Foo AAAAA