本文将介绍使用ajax请求安全地发送密码的详细情况,特别是关于使用ajax请求安全地发送密码是什么的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于2
本文将介绍使用ajax请求安全地发送密码的详细情况,特别是关于使用ajax请求安全地发送密码是什么的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于24_ajax请求_使用axios、AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数、Ajax请求中的jQuery Ajax请求、Ajax请求安全性讨论的知识。
本文目录一览:- 使用ajax请求安全地发送密码(使用ajax请求安全地发送密码是什么)
- 24_ajax请求_使用axios
- AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数
- Ajax请求中的jQuery Ajax请求
- Ajax请求安全性讨论
使用ajax请求安全地发送密码(使用ajax请求安全地发送密码是什么)
只是知道,是否可以通过Ajax请求安全地发送密码?
我有一个登录框,它调用ajax请求来尝试登录/传递并检索带有错误(如果有)的JSON对象。
我应该改用表单重定向吗?
[编辑] 将加密的密码存储在数据库中不是解决方案,因为ajax发送的登录名和密码是访问数据库本身(内部应用程序)的登录名/密码。
24_ajax请求_使用axios
前置说明:
1.React本身只关注页面,并不包含发送ajax请求的代码
2.前端应用需要通过ajax请求与后台进行交互(json数据)
3.React应用中需要集成第三方ajax库(或自己进行封装)
常用的ajax库:
1.jQuery:比较重,为了发送ajax请求而引用整个文件(不建议使用)
2.axios:轻量级,建议使用!
a.封装了XmlHttPRequest对象的ajax
b.promise风格
c.可以用在浏览器端和node服务器端
3.fetch:原生函数,但老版本浏览器不支持
a.不再使用XmlHttPRequest对象提交ajax请求
b.为了兼容低版本的浏览器,可以引入兼容库fetch.js
代码:
//其中的地址貌似访问不到了
<!DOCTYPE html> <html lang="en"> <head> <Meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="example"></div> <script type="text/javascript" src="../js/react.development.js"></script> <script type="text/javascript" src="../js/react-dom.development.js"></script> <script type="text/javascript" src="../js/babel.min.js"></script> <script type="text/javascript" src="https://cdn.bootcss.com/axios/0.19.0-beta.1/axios.js"></script> <script type="text/babel"> /* * 需求: * 1.界面效果如下 * 2.根据指定的关键字在github上搜索匹配的最受关注的库 * 3.显示库名,点击链接查看库 * 4.测试接口:https://api.github.com/search/repositories?q=r&sort=stars */ class MostStarRepo extends React.Component { state = { repoName: ‘‘,repoUrl: ‘‘ } //在这里发送异步ajax请求 componentDidMount() { //使用axios发送 const url = `https://api.github.com/search/repositories?q=r&sort=stars`; //因为是promise风格的,所以后面可以使用.then() axios.get(url).then(response => { //数据就在reponse里面 const result = response.data //使用解构得到想要的数据 const {name,html_url} = result.items[0]; //更新状态 this.setState({repoName: name,repoUrl: html_url}) }) } render() { const {repoName,repoUrl} = this.state if (!repoName) { return <h2>LOADING......</h2> } else { return <h2>Most star repo is <a href={repoUrl}>{repoName}</a></h2> } } } ReactDOM.render(<MostStarRepo/>,document.getElementById(‘example‘)); </script> </body> </html>
AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数
定义和用法
ajaxSetup() 方法为将来的 AJAX 请求设置默认值。
语法
$.ajaxSetup({name:value,name:value,... })
该参数为带有一个或多个名称/值对的 AJAX 请求规定设置。下面的表格中列出了可能的名称/值:名称 值/描述async 布尔值,表示请求是否异步处理。默认是 true。beforeSend(xhr) 发送请求前运行的函数。cache 布尔值,表示浏览器是否缓存被请求页面。默认是 true。complete(xhr,status) 请求完成时运行的函数(在请求成功或失败之后均调用,即在 success 和 error 函数之后)。contentType 发送数据到服务器时所使用的内容类型。默认是:"application/x-www-form-urlencoded"。context 为所有 AJAX 相关的回调函数规定 "this" 值。data 规定要发送到服务器的数据。dataFilter(data,type) 用于处理 XMLHttpRequest 原始响应数据的函数。dataType 预期的服务器响应的数据类型。error(xhr,status,error) 如果请求失败要运行的函数。global 布尔值,规定是否为请求触发全局 AJAX 事件处理程序。默认是 true。ifModified 布尔值,规定是否仅在最后一次请求以来响应发生改变时才请求成功。默认是 false。jsonp 在一个 jsonp 中重写回调函数的字符串。jsonpCallback 在一个 jsonp 中规定回调函数的名称。password 规定在 HTTP 访问认证请求中使用的密码。processData 布尔值,规定通过请求发送的数据是否转换为查询字符串。默认是 true。scriptCharset 规定请求的字符集。success(result,xhr) 当请求成功时运行的函数。timeout 设置本地的请求超时时间(以毫秒计)。Traditional 布尔值,规定是否使用参数序列化的传统样式。type 规定请求的类型(GET 或 POST)。url 规定发送请求的 URL。默认是当前页面。username 规定在 HTTP 访问认证请求中使用的用户名。xhr 用于创建 XMLHttpRequest 对象的函数。
Ajax请求中的jQuery Ajax请求
因为我需要从第一个ajax请求的一些数据,以进行下一个ajax请求。
首先,我使用Google Maps API获取LAT& LNG,之后我使用LAT& LNG请求Instagram API(基于搜索的位置)。
再次,这是可能的,如果是如此?
$('input#search').click(function(e){ e.preventDefault(); var source=$('select[name=state] option:selected').text()+' '+$('select[name=city] option:selected').text()+' '+$('select[name=area] option:selected').text(); var source=source.replace(/ /g,'+'); if(working==false){ working=true; $(this).replaceWith('<span id="big_loading"></span>'); $.ajax({ type:'POST',url:'/killtime_local/ajax/location/maps.json',dataType:'json',cache: false,data:'via=ajax&address='+source,success:function(results){ // this is where i get the latlng } }); } else { alert('please,be patient!'); } });
$.ajax({ type: "post",url: "ajax/example.PHP",data: 'page=' + btn_page,success: function (data) { var a = data; // This line shows error. $.ajax({ type: "post",url: "example.PHP",data: 'page=' + a,success: function (data) { } }); } });
Ajax请求安全性讨论
今天我们来讨论一下ajax请求的安全性,我相信各位在系统开发过程中肯定会绞尽脑汁的想怎样可以尽量少的防止伪造ajax请求进行攻击,尤其是开发跟用户交互比较多的互联网系统。那么就请大家来分享讨论一下你在开发过程中怎样考虑ajax安全及防止ajax请求攻击的问题。我也是一个新手,就先抛砖引玉了,写的不对的地方欢迎批评指正。
我先上两段网摘:
Ajax安全防范的方法:
- 判断request的来源地址。这样的方式不推荐,因为黑客可以更改Http包头,从而绕过检测。
- 采用验证码。也不推荐,请各位大大想一下用户的感受,刚输入用户名就让我输入注册码?这样Ajax意义何在?
- 给一个IP在一个小时内,分配一些份额,比如500个(考虑到网吧等等多台机器一个IP,使用NAT的地方)。
Ajax 安全性经验法则:
- 如果你使用身份验证,确定你在请求页上检查!
- 为 sql 注入检查。
- 为 JavaScript 注入检查。
- 保留商务逻辑在服务器上!
- 不要假设每个请求是真正的!
- 确认检查数据!
- 审查请求的数据而且确定它是正确的。
目前为止我做的最多的防止ajax请求攻击的就是添加验证码、添加随机Token,限制同一请求在规定时间内的最大请求数量、服务器端校验数据正确性、尽量使用POST方法。
下面我写一个在ajax请求的http头中添加一个随机Token来增加ajax请求的安全性。
1、使用 $.ajaxSetup和setRequestHeader方法为所有的ajax请求的Http头添加一个随机Token值
$.ajaxSetup({ beforeSend: function (xhr) { xhr.setRequestHeader("token","token随机值"); } });
这段js代码可以放在母板页中,token值随着页面的加载生成并放在session中,这样页面中的其他ajax进行请求时就会在Http头中添加token:XXXXXXX的键值对。我们就可以在后台获取该token值并与session中的值对比,相等则为合法的请求。
2、Token生成。
string Token = new Random().NextDouble().ToString(); Session["token"] = Token; System.Web.UI.HtmlControls.HtmlGenericControl script = new System.Web.UI.HtmlControls.HtmlGenericControl("script"); script.Attributes.Add("type","text/javascript"); script.InnerHtml = @" $.ajaxSetup({ beforeSend: function (xhr) { xhr.setRequestHeader(""token"",""" + Token + @"""); } }); "; Page.Header.Controls.Add(script);
3、新建DataService.ashx
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string Token = context.Request.Headers["token"]; if (string.IsNullOrWhiteSpace(Token) || context.Session["token"] == null) { context.Response.Write("请求不合法"); } else if (Token != context.Session["token"].ToString()) { context.Response.Write("请求不合法"); } else { context.Response.Write("请求合法§"); } }
4、测试Ajax请求
$.post("DataService.ashx",function (json) { alert(json); });
打开FireBug查看请求,发现多了一个token的值
如果你有什么好的能保证ajax请求安全的方法,欢迎评论。
程序下载:http://download.csdn.net/detail/peking2009/5806299
原文来源: http://www.cnblogs.com/lc-chenlong/p/3209356.html关于使用ajax请求安全地发送密码和使用ajax请求安全地发送密码是什么的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于24_ajax请求_使用axios、AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数、Ajax请求中的jQuery Ajax请求、Ajax请求安全性讨论等相关知识的信息别忘了在本站进行查找喔。
本文标签: