Javascript Комментарии представляют собой угрозу безопасности? - PullRequest
16 голосов
/ 05 июля 2010

Во время полученного аудита PCI аудитор сказал, что у нас были серьезные угрозы безопасности, потому что

  1. С нашего сайта можно было загружать статические ресурсы, такие как изображения css и javascript, без предварительной аутентификации.
  2. Наш javascript содержал комментарии.

Лично я считаю, что это вовсе не угроза безопасности. Изображения css и javascript не создавались динамически и не содержали данных о нашем бэкэнде, наших клиентских данных и механизмах.

Комментарии в javascript просто объясняли, что делали методы в файле javascript. Который любой, кто читает JS, мог бы все равно узнать.

Как это показывает " утечка информации "?

Действительно ли комментарии в javascript представляют собой угрозу безопасности?

Ответы [ 5 ]

16 голосов
/ 05 июля 2010

В зависимости от строгости аудита, загрузка изображений и т. Д. Без аутентификации МОЖЕТ рассматриваться как угроза безопасности (представьте диаграммы, диаграммы, графики ...)

Удаление комментариев в javascript похоже на запутывание кода: это делает его немного сложнее, но все же невозможно понять, что происходит. В любом случае JavaScript должен рассматриваться как только улучшающий, вся ваша безопасность должна быть (дублирована) на стороне сервера. Если кто-то понимает, что делает JS, не следует считать риском .

15 голосов
/ 05 июля 2010

Зависит от содержания комментария. Поскольку без вмешательства человека невозможно проверить содержание комментариев, чтобы определить, являются ли они рискованными, наиболее эффективный способ проверки заключается в том, чтобы объявить все комментарии в исходном коде, обращенном к клиенту, рискованными.

Ниже приведены примеры потенциально рискованных комментариев.

// doesn't really authenticate, placeholder for when we implement it.
myServer.authenticate(user,pass);

или

// don't forget to include the length, 
//the server complains if it gets NaN or undefined.
function send_stuff(stuff, length) {
...
}

или

function doSomething() {
    querystring = ""
    //querystring = "?TRACING_MODE=true&"
    ...
    //print_server_trace();
}

Другим примером может быть, если вы включите заголовок истории исходного кода, кто-то может найти слабые места в безопасности, изучив виды исправленных ошибок. По крайней мере, взломщик мог бы лучше нацеливать свои атаки, если он знает, какие векторы атаки уже закрыты.

Теперь, все эти примеры в любом случае являются плохой практикой (и комментарии, и код), и лучший способ предотвратить это - обзоры кода и хорошие программисты. Первый пример особенно плох, но невинные предупреждения для ваших товарищей по команде, как во втором примере, или закомментированный код отладки, как и в третьем, являются разновидностями дыр в безопасности, которые могут проскользнуть через сеть.

4 голосов
/ 05 июля 2010

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

4 голосов
/ 05 июля 2010

Не вдаваясь в то, что они представляют угрозу безопасности или нет, минимизируйте свой JS в производственной среде, это предотвратит «утечку информации» и поможет (в некотором роде, по крайней мере) защитить информацию на вашем сайте.

в отношении риска безопасности, я не думаю, что комментарии JS вообще являются риском, каждый контент сайта (статический) может быть загружен без аутентификации.(если не указано иное)

3 голосов
/ 05 июля 2010

JavaScript комментарии могут быть. зависит от вашей логики, но, безусловно, поскольку она общедоступна, вы даете больше видимости работе вашего кода.

Существуют и другие причины для удаления этого, например, размер файла и, как следствие, размер загружаемого файла.

Инструменты, такие как dd JSMin , могут помочь вам удалить комментарии и выполнить грубое запутывание кода.

...