2016-08-11 2 views
0

Так что я пытаюсь запрограммировать веб-сайт с формой пользователя/пароля с нуля.HTML-поля XSS-уязвимость

<html> 
     <head> 
      <title>Password Generator</title> 
     </head> 
     <body>   
      <h1>Password Generator</h1> 
      <h3> Let's start: </h3><h3> 

      <form action="pwd.php" method="GET"> 
      <table style="width:100px"> 
        <tbody> 
         <tr> 
           <td> 
            <b>Name:</b> 
           </td> 
           <td> 
            <input name="name" value="Name" type="text"> 
           </td> 
         </tr> 
         <tr> 
           <td> 
            <b>Size: </b> 
           </td> 
           <td> 
            <input min="10" max="1000" name="strength" type="range"> 
           </td> 
         </tr> 
        </tbody> 
      </table> 
      <table style="width:100%"> 
        <tbody> 
          <tr> 
           <td></td> 
           <td> 
            <input name"gen"="" value="Generate" type="submit"> 
           </td> 
          </tr> 
        </tbody> 
      </table> 
     </form> 
     <img src="pwd.php?name=strength"> 
     </h3> 
    </body> 
</html> 

Теперь я проверил мой веб-сайт для XSS уязвимости и обнаружил, что я могу вставить JS с помощью форм, например: <input name="name" value="Name" onclick="alert('XSS');" type="submit"> Я просто нужно изменить HTML немного с помощью Mozilla инспектор и я могу выполнить JS удаленно на моем сайте.

Я читал, что могу использовать JS для предотвращения этого, но я не понимаю, как это работает. Я имею в виду, что я могу модифицировать JS с помощью Инспектора, так как это будет работать?

надеюсь, кто-то может объяснить это мне!

вид касается
Raavgo

+0

'немного измените HTML с помощью Инспектор Mozilla, и я могу удаленно выполнить JS на моем сайте' - нет, вы выполняете его на своем компьютере. См. [Как работает XSS?] (Http://stackoverflow.com/q/239194/11683) – GSerg

+0

Уязвимости XSS вызваны пользовательскими данными пользователя, позволяющими выполнять произвольный код JS для других клиентов, обращающихся к сайту. В вашем HTML-коде не содержится никакого кода, который бы разрешил это. Я думаю, вы неправильно поняли, что XSS влечет за собой. –

+0

Как добавить разметку в инспекторе добавить XSS? Это не то, как работает XSS. – epascarello

ответ

0

Вы не можете быть уязвимы для XSS, если у вас есть только статические страницы HTML/CSS. XSS появляется, когда есть препроцессор (например, PHP).

Если ваша страница остается такой, какой она есть, вам не нужно беспокоиться.

Но если, например, вы используете PHP, и вы хотите, чтобы показать представленные значения вы должны изменить свою страницу, как это:

<input name="name" type="text" value="<?php echo $_GET['name']?>" /> 

Это уязвимо для атак XSS! Никогда не используйте его в своем коде!

Одним из решений является наличие:

<input name="name" type="text" value="<?php echo htmlspecialchars($_GET['name'], ENT_QUOTES, 'UTF-8')?>" /> 

от here.