divide by zero, inaccurate discount and totals, reflection of user input git-svn-id: http://webgoat.googlecode.com/svn/trunk/webgoat@273 4033779f-a91e-0410-96ef-6bf7bf53c507
		
			
				
	
	
		
			161 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| <!--
 | |
| STAGE 4 FIXES Look for the <-- STAGE 4 - FIX
 | |
| -->
 | |
| <%@ page contentType="text/html; charset=ISO-8859-1" language="java" 
 | |
| 	import="org.owasp.webgoat.session.*, org.owasp.webgoat.lessons.CrossSiteScripting.CrossSiteScripting" errorPage="" %>
 | |
| <%
 | |
| WebSession webSession = ((WebSession)session.getAttribute("websession"));
 | |
| 	Employee employee = (Employee) session.getAttribute("CrossSiteScripting." + CrossSiteScripting.EMPLOYEE_ATTRIBUTE_KEY);
 | |
| 	CrossSiteScripting lesson = (CrossSiteScripting) webSession.getCurrentLesson();
 | |
| //	int myUserId = getIntSessionAttribute(webSession, "CrossSiteScripting." + CrossSiteScripting.USER_ID);
 | |
| %>
 | |
| 		<div class="lesson_title_box"><strong>Welcome Back </strong><span class="lesson_text_db"><%=webSession.getUserNameInLesson()%></span></div>
 | |
| 		<div class="lesson_text">
 | |
| 				<Table>
 | |
| 				<TR><TD>
 | |
| 						First Name:
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 						<%=employee.getFirstName()%>
 | |
| 					</TD>
 | |
| 					<TD>				
 | |
| 						Last Name:
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 					 	<%=employee.getLastName()%>
 | |
| 					</TD>
 | |
| 				</TR>
 | |
| 				<TR><TD>				
 | |
| 						Street: 
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 						<!-- STAGE 4 - FIX  Note that the description value below gets encoded and address1 here is not -->
 | |
| 
 | |
| 						<%=employee.getAddress1()%>
 | |
| 					</TD>
 | |
| 					<TD>				
 | |
| 						City/State: 
 | |
| 					<TD>
 | |
| 						<%=employee.getAddress2()%>
 | |
| 					</TD>
 | |
| 				</TR>
 | |
| 				<TR><TD>
 | |
| 						Phone: 
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 						<%=employee.getPhoneNumber()%>
 | |
| 					</TD>
 | |
| 					<TD>				
 | |
| 						Start Date: 
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 						<%=employee.getStartDate()%>
 | |
| 					</TD>
 | |
| 				</TR>
 | |
| 				<TR><TD>
 | |
| 			    		SSN: 
 | |
| 			    	</TD>
 | |
| 			    	<TD>
 | |
| 			    		<%=employee.getSsn()%>
 | |
| 					</TD>
 | |
| 					<TD>				
 | |
| 						Salary: 
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 						<%=employee.getSalary()%>
 | |
| 					</TD>
 | |
| 				</TR>
 | |
| 				<TR><TD>
 | |
| 						Credit Card: 
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 						<%=employee.getCcn()%>
 | |
| 					</TD>
 | |
| 					<TD>				
 | |
| 						Credit Card Limit: 
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 						<%=employee.getCcnLimit()%>
 | |
| 					</TD>
 | |
| 				</TR>
 | |
| 				<TR><TD>
 | |
| 						Comments: 
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 						<!-- Encode data that might contain HTML content to protect against XSS -->
 | |
| 
 | |
| 						<%=lesson.htmlEncode(webSession, employee.getPersonalDescription())%>
 | |
| 					</TD>
 | |
| 					<TD>				
 | |
| 						Manager: 
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 						<%=employee.getManager()%>
 | |
| 					</TD>	
 | |
| 				</TR>
 | |
| 				<TR><TD>
 | |
| 						Disciplinary Explanation: 
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 						<%=employee.getDisciplinaryActionNotes()%>
 | |
| 					</TD>
 | |
| 					<TD>				
 | |
| 						Disciplinary Action Dates: 
 | |
| 					</TD>
 | |
| 					<TD>
 | |
| 						<%=employee.getDisciplinaryActionDate()%>
 | |
| 					</TD>
 | |
| 				</TR>
 | |
| 				</Table>
 | |
| 		</div>
 | |
| 		<div class="lesson_buttons_bottom">
 | |
| 		    <table width="460" height="20" border="0" cellpadding="0" cellspacing="0">
 | |
|                  <tr>
 | |
|                  	<td width="50">
 | |
| 					<%					
 | |
| 					if (webSession.isAuthorizedInLesson(webSession.getUserIdInLesson(), CrossSiteScripting.LISTSTAFF_ACTION))
 | |
| 					{
 | |
| 					%>
 | |
| 						<form method="POST" action="<%=webSession.getCurrentLesson().getFormAction()%>">
 | |
| 							<input type="hidden" name="<%=CrossSiteScripting.EMPLOYEE_ID%>" value="<%=employee.getId()%>">
 | |
| 							<input type="submit" name="action" value="<%=CrossSiteScripting.LISTSTAFF_ACTION%>"/>
 | |
| 						</form></td>
 | |
| 					<% 
 | |
| 					}
 | |
| 					%>			
 | |
| 		             <td width="50">
 | |
| 					<%					
 | |
| 					if (webSession.isAuthorizedInLesson(webSession.getUserIdInLesson(), CrossSiteScripting.EDITPROFILE_ACTION))
 | |
| 					{
 | |
| 					%>
 | |
| 						<form method="POST" action="<%=webSession.getCurrentLesson().getFormAction()%>">
 | |
| 							<input type="hidden" name="<%=CrossSiteScripting.EMPLOYEE_ID%>" value="<%=employee.getId()%>">
 | |
| 							<input type="submit" name="action" value="<%=CrossSiteScripting.EDITPROFILE_ACTION%>"/>
 | |
| 						</form>
 | |
| 					<% 
 | |
| 					}
 | |
| 					%>			
 | |
| 					</td>
 | |
|                     <td width="60">
 | |
| 					<%
 | |
| 					if (webSession.isAuthorizedInLesson(webSession.getUserIdInLesson(), CrossSiteScripting.DELETEPROFILE_ACTION))
 | |
| 					{
 | |
| 					%>
 | |
| 						<form method="POST" action="<%=webSession.getCurrentLesson().getFormAction()%>">
 | |
| 							<input type="hidden" name="<%=CrossSiteScripting.EMPLOYEE_ID%>" value="<%=employee.getId()%>">
 | |
| 							<input type="submit" name="action" value="<%=CrossSiteScripting.DELETEPROFILE_ACTION%>"/>
 | |
| 						</form>
 | |
| 					<% 
 | |
| 					}
 | |
| 					%>
 | |
| 					</td>
 | |
|                       <td width="190"> </td>
 | |
|                       <td width="76">
 | |
| 						<form method="POST">
 | |
| 							<input type="submit" name="action" value="<%=CrossSiteScripting.LOGOUT_ACTION%>"/>
 | |
| 						</form>
 | |
| 					</td>
 | |
| 				</tr>
 | |
|          	</table>
 | |
| 		</div>
 |