本文目录一览:
如何有效防止XSS攻击/AJAX跨域攻击
1,利用字符过滤漏洞,提交恶意js代码,当用户打开页面时执行
2,需要填写图片地址或css等直接在页面加载时执行的地方,填写恶意js [javascript:xxxx],当用户打开包含图片的页面时,可以执行js。比如GET s1.game.com/fight/:id 表示发兵到某个用户,虽然做了用户验证,但没做来源验证,用户只需将这个地址发到同用户的论坛作为图片地址即可执行
3,通过跳转页面漏洞,比如 refer.php?message=xxxx ,页面上直接用 $_GET['message'] 的话,就会造成xss漏洞,把message的参数换成js代码或恶意网址,即可盗取用户cookie,或执行恶意js,或跳转到钓鱼页面等
4,利用浏览器或服务器0day漏洞
1,XSS主要是你的页面可以运行用户写的js,所以对所有的用户提交的数据进行过滤,对于判断用户是否登录状态的cookie信息进行加密,并且加上Ip信息,这样基本被盗取也无法获取登录权限
2,对update或delete的操作采用post方式提交,每次form里加一个唯一验证字符串,用hiden方式提交,用于服务器验证是否来自用户客户端
3,跳转程序需要对传递的url进行匹配判断,只允许特定的格式
4,时常关注安全方面的消息,一有漏洞即刻不上
java怎么处理ajax?
ajax是一种用来改善用户体验的技术,其实质是利用浏览器内置的一个特殊的对象
(XMLHttpRequest对象,一般称之为ajax对象)异步地(当ajax对象发请求时,浏览
器不会销毁当前页面,用户任然可以对当前页面做其他操作)向服务器发送请求,
服务器送回部分数据(并不是一个完整的页面),利用这些数据更新当前页面。整
个过程,页面无刷新,不打断用户的操作
编程步骤:
step1,获得ajax对象
比如:
var xhr=getXhr();
step2,发请求:
方式一:get请求
xhr.open('get','check_username.do?username=zs',true);
请求参数、请求资源路径、是否异步
注意:
a,get请求必须将请求参数添加到请求资源路径的后面。
b,true表示异步请求、false表示同步请求。
异步请求:发请求时,浏览器不会销毁当前页面,用户可以对当前页面做
其他操作。
同步请求:发送请求时,浏览器不会销毁当前页面,用户不可以对当前页面
做其他操作。
xhr.onreadystatechange=f1;
xhr.send(null);
方式二:post请求
xhr.open('post','','')
step3,编写服务器端的处理程序,一般服务器只需要返回部分的数据。
step4,编写事件处理函数。
function f1(){
if(xhr.readyState==4){
var txt=xhr.responseText;
使用txt更新当前页面...
}
}
java服务器端处理ajax发送的请求,和处理其他请求是一样的,只是在客户端页面表现的不同,比如:执行页面发送删除请求,服务器端在执行删除后,页面是需要刷新的。
ajax最经典的用法是验证码,注册页面如果因为验证码输入错误要刷新,之前的信息重填,估计用户会崩溃,采用ajax异步发送请求,就不会影响之前填写的信息
java web开发如何有效的防止xss攻击
配置过滤器,再实现 ServletRequest 的包装类。
将所有的编程全角字符的解决方式。首先添加一个jar包:commons-lang-2.5.jar ,然后在后台调用函数。
java 中的ajax是怎么回事啊
普通网页提交信息到服务器是同步提交,这种方式会刷新整个页面。而AJAX是异步提交,提交信息后页面还在原来的页面,没有刷新。
JAVA的ajax方法?
//方式一:使用post请求的方式,不通过url传参,采用data传参
$.ajax({
url:"userAction_findMangerByDeptId",//访问的地址
type:"post",
data:{"传递到后台的参数名":参数},
dataType:'text',//后台返回的数据格式类型
success:function(data){
})
}
})
}
//方式二:这是get提交方法,会出现中文乱码,所以要 1.先将数据转码
参数名 = encodeURI(encodeURI(要转的参数));
$.ajax({
url:"userAction_findMangerByDeptId?参数名"+参数值,
type:"get",
dataType:'text',//后台返回的数据格式类型
success:function(data){
})
}
})
}
2.后台接收前端传递内容后要进行解码
String 参数名 = URLDecoder.decode(接收的参数);