Самый быстрый и простой способ, с помощью которого я смог найти отличную игру Вью и Электрона, - это электронный строитель .
Чтобы использовать, настройте проект с Vue CLI3, используя
vue create my-project
, затем CD в этот каталог, в данном случае «my-project», и запустите
[ 119] vue add electron-builder
Это устанавливает базовые леса, которые позволяют Vue и электрону играть хорошо с самого начала. Вы можете проверить свою работу, запустив не построенную тестовую версию, используя
npm run electron:serve
и, когда вы будете готовы к развертыванию, можете использовать
npm run electron:build
строить. Это значительно упрощает процесс, который можно увидеть в других местах, когда вы работаете с гигантским, а не спроектированным шаблоном или пытаетесь записать относительный путь, чтобы ваши сборки и среды разработки работали одинаково.
Волшебные кавычки по сути повреждаются. Они были предназначены для очистки входа к Сценарию PHP, но не зная, как тот вход будет использоваться, невозможно санировать правильно. В любом случае Вы - более обеспеченная проверка, если волшебные кавычки включены, то вызов stripslashes () на $ _GET/$ _POST/$ _COOKIES/$ _REQUEST, и затем очистка переменных в точке, где Вы используете его где-нибудь. Например, urlencode (), если Вы используете его в URL, htmlentities (), если Вы печатаете его назад к веб-странице или используете Вашу функцию выхода драйвера базы данных при хранении его к базе данных. Обратите внимание, что те входные массивы могли содержать подмассивы, таким образом, Вы, возможно, должны были бы записать, что функция может рекурсивно вызвать в подмассивы для разделения тех наклонных черт также.
страница справочника PHP на волшебных кавычках соглашается:
"Эта функция была УДЕРЖАНА ОТ ИСПОЛЬЗОВАНИЯ с PHP 5.3.0 и УДАЛЕНА с PHP 5.4.0. Доверию этой функции высоко препятствуют. Волшебные Кавычки являются процессом, который автоволшебно выходит из входящих данных к Сценарию PHP. Это предпочтено, чтобы кодировать с волшебными кавычками прочь и вместо этого выйти из данных во времени выполнения по мере необходимости".
Волшебные кавычки были ошибкой дизайна. Их использование является несовместимым с сохранением Вашей исправности.
я предпочитаю:
if (get_magic_quotes_gpc()) {
throw new Exception("Turn magic quotes off now!");
}
не пишут код для совместимости с по сути поврежденными установками. Вместо этого защитите aginst их использование при наличии Вашего кода FAST СБОЯ.
Я использую следующий код в заголовочном файле моего веб-сайта для инвертирования эффектов magic_quotes:
<?php
// Strips slashes recursively only up to 3 levels to prevent attackers from
// causing a stack overflow error.
function stripslashes_array(&$array, $iterations=0) {
if ($iterations < 3) {
foreach ($array as $key => $value) {
if (is_array($value)) {
stripslashes_array($array[$key], $iterations + 1);
} else {
$array[$key] = stripslashes($array[$key]);
}
}
}
}
if (get_magic_quotes_gpc()) {
stripslashes_array($_GET);
stripslashes_array($_POST);
stripslashes_array($_COOKIE);
}
?>
Затем я могу записать остальную часть моего кода, как будто magic_quotes никогда не существовал.
"Я предпочел бы не должным быть полагаться на определенную для базы данных функцию выхода как mysql_real_escape_string ()"
Тогда использование что-то как PDO. Но необходимо инвертировать ущерб, нанесенный волшебными кавычками так или иначе.
Поместите требование PHP 5.2 или выше на Вашем коде и используйте фильтр API. filter_*
функции получают доступ к необработанным входным данным непосредственно (они никогда не затрагивают $_POST
и т.д.), таким образом, они абсолютно незатронуты magic_quotes_gpc
.
Затем этот пример:
if (!get_magic_quotes_gpc()) {
$lastname = addslashes($_POST['lastname']);
} else {
$lastname = $_POST['lastname'];
}
Может стать этим:
$lastname = filter_input(INPUT_POST, 'lastname');
Право, это не лучший способ сделать это и не самое безопасное. Выход лучше всего сделан относительно того, для чего Вы выходите. Если это должно сохранить в mysql базе данных, используйте mysql_real_escape_string, который принимает во внимание другие локали, наборы символов. Для HTML, htmlentities. Для использования в коде, escapeshellcmd, escapeshellarg. Да, Вам, вероятно, нужно к stirpslashes сначала, если волшебные кавычки идут. Но лучше всего не рассчитывать на него или использовать его.
Относительно использования базы данных определенная функция выхода Вы в значительной степени должны. Я нашел, что просто использование addslashes()
перестало работать в редких случаях с MySQL. Можно записать функцию для выхода, который определяет, какой DB Вы используете и затем используете функцию Escape approriate.
Можно попробовать это:
if (get_magic_quotes_gpc()) {
$_REQUEST = array_map('stripslashes', $_REQUEST);
$_GET = array_map('stripslashes', $_GET);
$_POST = array_map('stripslashes', $_POST);
$_GET = array_map('stripslashes', $_COOKIES);
}
"Я предпочел бы не должным быть полагаться на определенную для базы данных функцию выхода как mysql_real_escape_string ()"
Также addslashes, может быть обманут, также проверяют это сообщение:
http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string
Ваш пример кода назад, необходимо делать следующее:
if (get_magic_quotes_gpc()) {
$lastname = stripslashes($_POST['lastname']);
} else {
$lastname = $_POST['lastname'];
}
Обратите внимание, что это оставляет Ваши входные данные в 'необработанном' состоянии точно, поскольку пользователь ввел их - никакие дополнительные обратные косые черты и потенциально загрузился с Внедрением SQL и нападениями на XSRF - и это точно, что Вы хотите. Затем Вы удостоверяетесь, что всегда используете одно из следующего:
echo
луг переменная в HTML, перенесите его в htmlentities()
mysql_real_escape_string()
как минимум.echo
луг переменная в код Javascritpt, использовать json_encode()
У Joel Spolsky есть некоторый хороший стартовый совет в Создании Взгляда Неверного кода Неправильно
Только что нашел это на страницах руководства PHP , похоже, довольно умный способ убрать их (имеет дело с ключами и значениями. ..):
if (get_magic_quotes_gpc())
{
$_GET = json_decode(stripslashes(json_encode($_GET, JSON_HEX_APOS)), true);
$_POST = json_decode(stripslashes(json_encode($_POST, JSON_HEX_APOS)), true);
$_COOKIE = json_decode(stripslashes(json_encode($_COOKIE, JSON_HEX_APOS)), true);
$_REQUEST = json_decode(stripslashes(json_encode($_REQUEST, JSON_HEX_APOS)), true);
ini_set('magic_quotes_gpc', 0);
}