相关疑难解决方法(0)

查询字符串参数的Java URL编码

说我有一个URL

http://example.com/query?q=
Run Code Online (Sandbox Code Playgroud)

我有一个用户输入的查询,例如:

随机字500英镑银行$

我希望结果是一个正确编码的URL:

http://example.com/query?q=random%20word%20%A3500%20bank%20%24
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳方法是什么?我尝试URLEncoder并创建了URI/URL对象,但它们都没有完全正确.

java url encoding http urlencode

672
推荐指数
8
解决办法
88万
查看次数

从String中删除HTML标记

有没有一种从Java字符串中删除HTML的好方法?一个简单的正则表达式

 replaceAll("\\<.*?>","") 
Run Code Online (Sandbox Code Playgroud)

会工作,但&amp;不会正确转换,两个尖括号之间的非HTML将被删除(即.*?正则表达式将消失).

html java parsing

408
推荐指数
18
解决办法
44万
查看次数

JSF中的CSRF,XSS和SQL注入攻击防范

我有一个基于JSF的Web应用程序,MySQL作为DB.我已经实现了代码来防止我的应用程序中出现CSRF.

现在,由于我的底层框架是JSF,我想我不必处理XSS攻击,因为它已经被处理了UIComponent.我没有在任何视图页面中使用任何JavaScript.即使我使用,我真的需要实现代码来防止XSS攻击?

对于DB,我们在所有数据库交互中使用预准备语句和存储过程.

是否还需要处理其他任何事情以防止这3种常见攻击?我已经通过了OWASP网站和他们的备忘单.

我是否需要处理任何其他潜在的攻击媒介?

xss jsf sql-injection csrf owasp

54
推荐指数
2
解决办法
4万
查看次数

如何阻止人们在Spring MVC中进行XSS操作?

我应该怎么做才能阻止Spring MVC中的XSS?现在我只是把我输出用户文本的所有地方放到JSTL <c:out>标签或fn:escapeXml()函数中,但这似乎容易出错,因为我可能会错过一个地方.

是否有一种简单的系统方法来防止这种情况?也许像过滤器或什么?我通过@RequestParam在控制器方法上指定参数来收集输入.

xss spring jsp spring-mvc html-escape-characters

53
推荐指数
4
解决办法
9万
查看次数

使用MVC和DAO模式在JSP页面中以HTML格式显示JDBC ResultSet

我正在使用JSP和JDBC实现MVC.我已将数据库类文件导入到我的JSP文件中,并且我想显示数据库表的数据.我不知道应该如何ResultSet从Java类返回到JSP页面并将其嵌入HTML中.

我怎样才能做到这一点?

java model-view-controller jsp servlets jdbc

52
推荐指数
4
解决办法
6万
查看次数

Java防止跨站点脚本的最佳实践

我已经完成了OWASP十大漏洞,发现跨站点脚本是我们必须记笔记的.建议的解决方案很少.有人说不要使用"黑名单"验证来检测输入中的XSS或编码输出.搜索和替换只有几个字符(<以及>其他类似的字符或短语script)很弱,并且已成功攻击.即使是未经检查的“<b>”标签在某些情况下也是不安全的.XSS拥有数量惊人的变体,可以轻松绕过黑名单验证.另一个解决方案是强输出编码.在渲染之前,确保所有用户提供的数据都经过适当的实体编码(HTML或XML,具体取决于输出机制).那么,这是阻止跨站点脚本验证和替换输入或编码输出的最佳方法?

java security xss

34
推荐指数
3
解决办法
9万
查看次数

在JSP内部使用for循环

我想循环遍历"节日" 的ArrayList,并使用get方法获取其信息,打印出所有值.出于某种原因,当我使用此代码时,它将始终选择"0"值而不是增加循环.

如果我将值硬编码为"get(1)",它将获得正确的值,因此我的问题显然与语法有关.

<h1>All Festival Information</h1>
    <jsp:useBean id="allFestivals" type="java.util.ArrayList" scope="session" />
    <table border="1">
        <tr>
            <td>Festival Name:</td>
            <td>Location:</td>
            <td>Start Date:</td>
            <td>End Date:</td>
            <td>URL:</td>
        </tr>
        <% for(int i = 0; i < allFestivals.size(); i+=1) { %>
            <tr>      
                <td>${allFestivals.get(i).getFestivalName()}</td>
                <td>${allFestivals.get(i).getLocation()}</td>
                <td>${allFestivals.get(i).getStartDate()}</td>
                <td>${allFestivals.get(i).getEndDate()}</td>
                <td>${allFestivals.get(i).getURL()}</td>  
            </tr>
        <% } %>
    </table> 
Run Code Online (Sandbox Code Playgroud)

html java jsp loops for-loop

28
推荐指数
2
解决办法
15万
查看次数

JSTL转义特殊字符

我有这个特殊字符的奇怪问题.在JSP中,我使用字段名称作为id,名称可以是任何类似的

id="&amp;lt;1 and &amp;&gt;2" (OR)
id="aaa &amp; bbb"
Run Code Online (Sandbox Code Playgroud)

我没有任何其他选项来使用ID而不是名称,这是我从后端得到的唯一东西.

那么,是否有任何逻辑可以使用JSTL删除所有特殊字符.在目前的场景中,在In JS中,我将使用ID进行一些操作.这导致每种浏览器出现很多问题.

请建议,提前致谢...

jsp jstl escaping special-characters

27
推荐指数
2
解决办法
9万
查看次数

如何最好地清理Java webapp中的输入

我们使用jsp,servlets,bean和mysql数据库.我们不希望限制用户在表单字段上输入的字符.那么如何清理输入以及如何确保输出不会因恶意活动而更改.有没有办法在发送输出时我可以检查是否已经发送了额外的代码.就像假设有搜索输入字段 - 用户提供类似的东西<script>alert("I am here")</script>.有没有我可以知道这是一个HTML标签.如果用户在链接字段中附加了一个额外的参数,那么就像之前和之后的检查一样,我可以为文档做一些额外的链接字段.

java security validation

24
推荐指数
3
解决办法
4万
查看次数

如何在JSTL函数中转义双引号?

我需要改变",以\"JSTL替换功能使用的字符串输入标签,如:

<input type="hidden" name="text" size="40" value="${text}">
Run Code Online (Sandbox Code Playgroud)

如果${text}",则HTML将被破坏.

所以我试过了

<input type="hidden" name="text" size="40" value="${fn:replace(text, "\"", "\\\""}">
Run Code Online (Sandbox Code Playgroud)

<input type="hidden" name="text" size="40" value="${fn:replace(text, '"', '\"'}">
Run Code Online (Sandbox Code Playgroud)

但没有奏效.该页面会出错

org.apache.el.parser.ParseException:遇到""}""}""在第1行第32列.期待其中一个:"." ...")"......"["...","...">"..."gt"..."<"..."lt"..."> =". .."ge"......"<="......"le"......"=="......"eq"......"!="......"ne"......"&&" ......"和"......"||" ..."或"......"*"......"+"......" - "..."/"..."div"..."%"..."mod".. .

我怎样才能做到这一点?

更新

我错过了替换功能的密切关注.正确的是这个与亲密的人:

<input type="hidden" name="text" size="40" value="${fn:replace(text, '"', '\"')}">
Run Code Online (Sandbox Code Playgroud)

UPDATE2

我发现在发布文本时,使用\不是一个好主意,因为这个原因为什么不能在HTML输入标签中使用?.代码应该是这样的:

<input type="hidden" name="text" size="40" value="${fn:replace(text, '"', '&quot;')}">
Run Code Online (Sandbox Code Playgroud)

java jstl el

18
推荐指数
2
解决办法
4万
查看次数