Мерзавец в Windows: Как Вы настраиваете mergetool?

Параметрированный запрос И проверка ввода - это путь. Существует множество сценариев, в которых может произойти SQL-инъекция, хотя используется mysql_real_escape_string().

Эти примеры уязвимы для SQL-инъекции:

$offset = isset($_GET['o']) ? $_GET['o'] : 0;
$offset = mysql_real_escape_string($offset);
RunQuery("SELECT userid, username FROM sql_injection_test LIMIT $offset, 10");

или

$order = isset($_GET['o']) ? $_GET['o'] : 'userid';
$order = mysql_real_escape_string($order);
RunQuery("SELECT userid, username FROM sql_injection_test ORDER BY `$order`");

В обоих случаях вы не можете использовать ' для защиты инкапсуляции.

Источник : Непредвиденная инъекция SQL (при эвакуации Недостаточно)

337
задан danwellman 31 January 2017 в 02:04
поделиться

5 ответов

К продолжению на ответе Charles Bailey вот моя установка мерзавца, которую это использует p4merge (свободный межплатформенный 3way инструмент слияния); протестированный на msys Мерзавце (Windows) установка:

git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'

или, от оболочки окон cmd.exe, вторая строка становится:

git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""

изменения (относительно Charles Bailey):

  • добавленный к глобальной конфигурации мерзавца, т.е. допустимый для всех проектов мерзавца не только текущий
  • значение конфигурации инструмента пользователя находится в "mergetool. [инструмент] .cmd", не "объединяются. [инструмент] .cmd" (глупый меня, провел час, диагностируя, почему мерзавец продолжал жаловаться на несуществующий инструмент)
  • добавленные двойные кавычки для всех имен файлов так, чтобы файлы с пробелами могли все еще быть найдены инструментом слияния (я протестировал это в msys Мерзавце от Powershell)
  • примечание, которое по умолчанию По необходимости добавит его dir установки для СОЕДИНЕНИЯ КАНАЛОМ, таким образом никакая потребность определить полный путь к p4merge в Загрузке команды

: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools

<час>

РЕДАКТИРОВАНИЕ (февраль 2014)

, Как указано [1 110] @Gregory Pakosz, последний msys мерзавец теперь "исходно" поддержки p4merge (протестированный на [1 112] 1.8.5.2.msysgit.0 ).

Вы можете дисплейный список поддерживаемых инструментов путем выполнения:

git mergetool --tool-help

необходимо видеть p4merge или в [1 114] доступный или в допустимый список. В противном случае обновите своего мерзавца.

, Если p4merge был перечислен как [1 117] доступный , это находится в Вашем ПУТЬ , и только необходимо установить merge.tool:

git config --global merge.tool p4merge

, Если это было перечислено как [1 120] допустимый , необходимо определить mergetool.p4merge.path в дополнение к [1 122] merge.tool:

git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
  • Вышеупомянутое является путем в качестве примера, когда p4merge был установлен для текущего пользователя, не в масштабе всей системы (не нуждается в правах администратора или повышении контроля учётных записей)
  • , Хотя ~ должен расшириться до корневого каталога текущего пользователя (так в теории, путь должен быть ~/AppData/Local/Perforce/p4merge.exe), это не работало на меня
  • , Еще лучше должен был использовать в своих интересах переменную среды (например, $LOCALAPPDATA/Perforce/p4merge.exe), мерзавец, кажется, не разворачивает переменные среды для путей (если Вы знаете, как получить эту работу, сообщите мне или обновите этот ответ)
298
ответ дан Community 23 November 2019 в 00:39
поделиться

Как уже отвечено здесь (и здесь и здесь ), mergetool является командой для конфигурирования этого. Для хорошего графического frontend я рекомендую kdiff3 (GPL).

5
ответ дан Community 23 November 2019 в 00:39
поделиться

git mergetool полностью настраивается, таким образом, Вы можете, в значительной степени выбрал Ваш любимый инструмент.

полная документация здесь: http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html

Короче говоря, можно установить значение по умолчанию mergetool путем установки пользовательской переменной конфигурации merge.tool.

, Если инструмент слияния является одним из тех поддерживаемых исходно им, просто необходимо установить mergetool.<tool>.path на полный путь к инструменту (замена <tool> тем, что Вы настроили merge.tool, чтобы быть.

Иначе, можно установить mergetool.<tool>.cmd на небольшое количество оболочки, чтобы быть eval'ed во времени выполнения с переменными оболочки $BASE, $LOCAL, $REMOTE, $MERGED набор в соответствующие файлы. Необходимо быть немного осторожными с выходом, редактируете ли Вы непосредственно файл конфигурации или устанавливаете переменную с эти git config команда.

Что-то вроде этого должно дать аромат того, что можно сделать ('mymerge', вымышленный инструмент).

git config merge.tool mymerge
git config merge.mymerge.cmd 'mymerge.exe --base "$BASE" "$LOCAL" "$REMOTE" -o "$MERGED"'

, Как только Вы имеете, устанавливают Ваш любимый инструмент слияния, это - просто вопрос выполнения git mergetool каждый раз, когда у Вас есть конфликты для разрешения.

p4merge инструмент от По необходимости является довольно хорошим автономным инструментом слияния.

16
ответ дан CB Bailey 23 November 2019 в 00:39
поделиться

Мне пришлось отказаться от дополнительного цитирования с помощью msysGit в Windows 7, не знаю почему.

git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge $BASE $LOCAL $REMOTE $MERGED'
4
ответ дан 23 November 2019 в 00:39
поделиться

Если вы делаете это через cygwin, вам может потребоваться использовать cygpath:

git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge `cygpath -w $BASE` `cygpath -w $LOCAL` `cygpath -w $REMOTE` `cygpath -w $MERGED`'
3
ответ дан 23 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

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