我有一个用户可以在互联网上输入的字符串,目前它没有受到XSS攻击的保护.我希望能够替换<和>符号.通常称为"小于","超过","尖括号"等.
我确信这已被问了一百万次,但我找不到一个简单的答案.我认为正则表达式是前进的方向,但无法弄清楚如何选择这些字符.
我有一个HTML表,其中包含从该表中显示的数据库中提取的行.我希望用户能够通过单击每行之外的删除超链接或按钮来删除行.
当用户点击每个删除超链接或按钮时,如何在页面上调用JSP函数,以便我可以从数据库中删除该行的条目?<a>or <button>标签究竟应该调用JSP函数到底是什么?
请注意,我需要调用JSP函数,而不是JavaScript函数.
我有一个使用Struts 2构建的应用程序.它存在跨站点脚本(XSS)攻击的一些问题.我想以类似于JSP的方式编码一些动作输入参数<c:out value="${somevalue}"/>在Struts 2中有什么简单的方法吗?Java API方法会很好.
编辑我找到了这个 - http://www.owasp.org/index.php/Talk:How_to_perform_HTML_entity_encoding_in_Java
有经验吗?
user在servlet中为null.如果做错了请让我.
我试图获取bean rateCode.jsp中的所有html元素
<%@page import="com.hermes.data.RateCode_" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Rate Code</title>
</head>
<body>
<jsp:useBean id="user" class="com.hermes.data.RateCode_" scope="request" >
<jsp:setProperty name="user" property="*"/></jsp:useBean>
<form id="f_rateCode" action="/ratePromoCodes" method="post" >
<table align="center" border="1" cellspacing="0">
<tr>
<td colspan="2" align="center" class="header">Rate Code Administrations</td>
</tr>
<tr>
<td align="right" style="border-style: solid;">Rate Code:</td>
<td align="left" style="border-style: solid;">
<input type="text" id="code" name="code" value="${user.code}" size="10" maxlength="32" style="width: 100px"/>
</td>
</tr>
<tr>
<td align="right" style="border-style: solid;">Rate Description:</td>
<td align="left" style="border-style: solid;">
<input type="text" id="description" name="description" value="<%=user.getDescription()%>" …Run Code Online (Sandbox Code Playgroud) 我有一个jsp包含一个jquery帖子到我的tomcat服务器上的servlet创建一个HttpServletRequest.我想确保只处理我对我的servlet的jsp调用,并且忽略源自除jsp以外的源的任何请求.是否有保证的方式来查看调用我的服务器的引用页面是什么?我已经读过使用request.getHeader("referer")可以欺骗,所以我知道我不能依赖它.
我完全坚持这个,我试图逃避JSP中的单引号.我有一些数据,我直接输出到JS字符串,单引号似乎导致问题.
这是我的代码:
<dsp:droplet name="/atg/dynamo/droplet/ForEach">
<dsp:param value="${CommerceItems}" name="array" />
<dsp:param name="elementName" value="CommerceItem" />
<dsp:oparam name="outputStart">
var itemNameList ='
</dsp:oparam>
<dsp:oparam name="output">
<dsp:getvalueof id="Desc" param="CommerceItem.auxiliaryData.productRef.displayName">
${fn:replace(Desc, "'", "\\/'")}
</dsp:getvalueof>
</dsp:oparam>
<dsp:oparam name="outputEnd">';</dsp:oparam>
</dsp:droplet>
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出:
var itemNameList ='
Weyland Estate Santa Barbara Pinot Noir
Raymond \/'Prodigal\/' North Coast Cabernet Sauvignon
Chateau Haute Tuque';
Run Code Online (Sandbox Code Playgroud)
但这是错误的,我只需要/'Prodigal'/或根本不需要单引号!
编辑:或者我实际上需要用\反斜杠来逃避引号?
我想在过滤器内的HTML响应中用它们各自的HTML实体替换某些字符.字符包括<,>,&.我无法使用replaceAll(),因为它将替换所有字符,甚至是HTML标记的一部分.
这样做的最佳方法是什么?
当我使用下面的jstl代码
<a href="http://mysite.com?id="<c:out value="${myid}"/>/><c:out value="${myid}"/></a>
Run Code Online (Sandbox Code Playgroud)
输出是:
"1234"
值1234对应于myid的变量值,但生成的url是" http://mysite.com?id= ",因此myid的值不会作为href的一部分生成.
如何修改href以显示整个href:
代替 :
背景:我在tomcat上部署了一个使用基于表单的身份验证的javaee webapp.当Web服务器收到登录请求时,它会将请求发送到专用的身份验证服务,该服务验证用户登录(用户ID和密码).成功验证后,用户的会话将在Web服务器中维护.
问题:我在这里编写了一个简单的webpp 源代码,以模拟场景.成功登录后,当前HttpSession实例将失效并创建新实例.对于后登录页面的每个请求,会话都经过验证.设置了一个新JSESSIONIDcookie,用于在会话期间识别用户,直到会话过期或用户注销.可以在浏览器的开发工具中轻松查看此cookie.如果我复制cookie并通过JavaScript(document.cookie="JSESSIONID=xyzz")在不同的浏览器中设置它,然后尝试访问帖子登录页面,则服务器将其识别为有效请求并成功验证会话.提供帖子登录页面,用户不会因用户ID和密码而受到质疑.
POC:用户打开浏览器和输入网址http://localhost:8080/mywebapp/与和日志admin和pass1234.成功登录后http://localhost:8080/mywebapp/home会显示主页.现在,JSESSIONIDCookie被复制并在FireFox中设置.用户进入http://localhost:8080/mywebapp/homeFirefox并显示主页而不会受到userId和密码的质询.
问题:如何通过多个浏览器复制相同的会话,如何防止这种情况?
我的JSP中的以下代码段在input标签上造成了跨站点脚本漏洞。
<form name="acctFrm" method="post" action="<%=contextPath%>/form/acctSummary?rpt_nm=FIMM_ACCT_SUMM_RPT">
<table>
<tr>
<td>Account Id:</td>
<td>
<input class="tbl1" type="text" id="acctId" name="acctId" size="20" maxlength="10" value="<%=rptBean.getAcctId()%>"/>
<a href="javascript:doAcctSubmit()"><img class="tbl1" src="<%=contextPath%>/img/Submit.gif" border="0" /></a>
</td>
</tr>
</table>
</form>
Run Code Online (Sandbox Code Playgroud)
在渗透测试期间,他们可以通过在标签的value属性中注入警报脚本来向用户发出一些随机消息,如下所示
<input class="tbl1" type="text" id="acctId" name="acctId" size="20" maxlength="10" value="1"><script>alert(12345)</script>" />
Run Code Online (Sandbox Code Playgroud)
这里的问题是什么,将会解决什么。
我正在阅读有关XSS的一些在线参考资料,但我仍然不确定100%是什么问题。
任何帮助将不胜感激。
谢谢,黛娜