原 [Web安全之实战] 跨站脚本攻击XSS [转]
2036 | 0 | 0


1 // create cookie and set it in response
2 Cookie cookie1 = new Cookie("cookie1", "cookieValueHttpOnly");
3 Cookie cookie2 = new Cookie("cookie2", "cookieValue");
4 cookie1.setHttpOnly(true);
5
6 response.addCookie(cookie1);
7 response.addCookie(cookie2);


public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper
{
public XssHttpServletRequestWrapper(HttpServletRequest request)
{
super(request);
}
public String[] getParameterValues(String parameter)
{
String[] values = super.getParameterValues(parameter);
if (values==null)
{
return null;
}
int count = values.length;
String[] encodedValues = new String[count];
for (int i = 0; i < count; i++)
{
encodedValues[i] = cleanXSS(values[i]);
}
return encodedValues;
}
public String getParameter(String parameter)
{
String value= super.getParameter(parameter);
if (value == null)
{
return null;
}
return cleanXSS(value);
}
public String getHeader(String name)
{
String value= super.getHeader(name);
if (value == null)
return null;
return cleanXSS(value);
}
/**
* @Title: cleanXSS
* @Description: You'll need to remove the spaces from the html entities below
* @param @param value
* @param @return
* @return String
*/
private String cleanXSS(String value)
{
value= value.replaceAll("<", "& lt;").replaceAll(">", "& gt;");
value = value.replaceAll("\\(", "& #40;").replaceAll("\\)", "& #41;");
value = value.replaceAll("'", "& #39;");
value = value.replaceAll("eval\\((.*)\\)", "");
value = value.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", "\"\"");
value = value.replaceAll("script", "");
return value;
}
}
用兵之道在于,如何正确的使用,才能以少胜多。Web安全这场战争也一样,所以要如何正确的使用XSS防御。
Writer:BYSocket(泥沙砖瓦浆木匠)
0

sss
16人已关注
领课教育 32639
10400
update 47845
5212
领课教育 18519
husheng 21211
请更新代码 41904
凯哥Java 2485
凯哥Java 2914
凯哥Java 2193