2017-11-05 9 views
-1

웹 응용 프로그램을 만들고 응용 프로그램의 보안을 설정하려고합니다. 취약점 스캔을 수행했으며 로그인 페이지에서 XSS를 발견했습니다. XSS에서 응용 프로그램을 보호하는 방법을 알 수 없습니다. 누군가 제발 도와 줄 수 있어요. 로그인 페이지에 대해 SQL injection을 중지했지만 XSS를 막을 수는 없습니다. 나는 트렁크 스위트에서 익스플로잇을 발견했지만 그것을 고칠 수는 없다. 사람이에 대한 몇 가지 도움말은 매우 CSRF 나쁜 웹 사이트가 브라우저는 사용자의 지식없이 당신의 웹 사이트에 명령을 보낼 얻을 수있는 공격의 유형입니다웹 응용 프로그램의 CSRF 방지

 <%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Sitting Ducks</title> 
<link href="style.css" rel="stylesheet" type="text/css" /> 
</head> 


<% 
    String username = request.getParameter("username"); 
    String password = request.getParameter("password"); 
//String username="";old code 
// String password="";old code 
Cookie[] cookies = request.getCookies(); 
if (cookies != null) 
    for (Cookie c : cookies) { 
     if ("username".equals(c.getName())) { 
     username= c.getValue(); 
     } 
     else if("password".equals(c.getName())) 
     { 
      password= c.getValue(); 
     } 
    } 

%>  

<body> 
<div id="main"> 
<div id="top-nav"> 
     If<b> Carlsberg</b> did Websites... It <b>definitely</b> wouldn't be this! 
</div> 


<div id="header"> 
     <img src="images/Banner.jpg" alt="" width="720" height="160" /> 
</div> 
<div id="navigation"> 

     Menu 

     <hr /> 
     <a href="index.jsp" class="navigation">Home</a> 
     <a href='login.jsp' class="navigation">Login</a> 
     <a href="index.jsp" class="navigation">Logout</a> 
     <a href="search.jsp" class="navigation">Search</a> 
     <a href="documents.jsp" class="navigation">Documents</a> 
     <a href="Messages.jsp" class="navigation">Messages</a> 
     <a href="SendMessage.jsp" class="navigation">Send Message</a> 
</div> 
<br></br> 
<div id="content"> 

    <h1>Login</h1> 
    <form action="ValidateLogin" method="post"> 
      <table> 
       <tr><td>UserName: </td><td><input type="text" name="username" value="<%=username%>" /></td></tr> 
       <tr><td>Password :</td><td><input type="password" name="password" value="<%=password%>"/></td></tr> 
       <tr><td><input type="submit" name="Login" value="Login"/></td></tr> 
      </table> 
     </form> 
    <% 
     if(request.getParameter("err")!=null){out.print(request.getParameter("err"));} 
    %> 
</div> 
<div id="footer"> 

    <hr /> 
     Copyright © 2016 | Sitting Ducks 

</div> 



</div> 

</body> 

</html> 
+0

귀하의 질문 제목 CSRF에 대한 요구하지만 몸이 XSS에 대해 묻는다 : 여기

다른 explination입니다. 너는 무엇에 대해 정말로 묻고 있니? – Quentin

+0

왜이 태그가 [tag : javascript]입니까? 그 코드는 JSP처럼 보입니다. – Quentin

답변

0

을 appriecated 될 경우. 실제로 악용하기가 쉽습니다. 사용자의 브라우저는 나쁜 웹 사이트가 귀하의 웹 사이트가 설정 한 쿠키에 액세스하는 것을 허용하지 않습니다. 그러나 나쁜 웹 사이트는 브라우저가 귀하의 웹 사이트에 요청을 보내도록 요청할 수 있으며 브라우저는 요청을 보낼뿐만 아니라 설정 한 쿠키도 보내 게됩니다.

그런 공격을 어떻게 막을 수 있습니까? 자바 스크립트! 무작위로 생성 된 토큰을 제공 할 엔드 포인트를 서버에 작성해야합니다. 그런 다음 Javascript를 사용하여 토큰을 요청합니다. 그러나이 토큰을 쿠키에 저장하지 마십시오! 서버에 요청할 때마다 Javascript를 사용하여이 토큰을 요청에 첨부하십시오. 나쁜 웹 사이트는이 토큰을 첨부 할 수 없습니다. What is a CSRF token ? What is its importance and how does it work?