2015-08-14 2 views
0

Например, этот блок кода встроен в мой файл test.ejs,EJS-серверный односторонний шаблон безопасен?

<h1><%= title %></h1> 
<ul> 
<% for(var i=0; i<supplies.length; i++) {%> 
    <li><%= supplies[i] %></li> 
<% } %> 
</ul> 

Шаблон получит оказанной, и будет отправлен клиенту в виде HTML-файла с петлей уже выполняется.

Допустим, я только хочу, чтобы клиент, чтобы увидеть 3 из поставок, так что я бы

<% for(var i=0; i<3; i++) {%> 

вместо

<% for(var i=0; i<supplies.length; i++) {%> 

Насколько безопасно это? Может ли клиент каким-то образом изменить номер 3 и поставить supplies.length, чтобы браузер отображал данные соответствующим образом? Я новичок в NodeJS, так что, как я обычно делаю, я бы запросил данные в MongoDB, чтобы вернуть только 3 предмета, прежде чем передать его в EJS. Но только из любопытства, это такой шаблон безопасности?

ответ

0

Если вы используете EJS внутри nodejs на стороне сервера, тогда это безопасно. Полное выполнение происходит на стороне сервера, и клиент не может изменить цикл. Фактически, у клиента нет возможности узнать, что HTML был создан с циклом for.

+0

Большое вам спасибо! – Zanko

Смежные вопросы