ajax 开发守则 10条说明

1. 前、后端都要做好安全的把关工作
不能单靠前端做安全验证工作,后端也必须有过滤机制,检验前方传来的资料。由于Ajax也会接收后端传送来的资料,对这些资料都要采取不信任态度,必须加以检查。

2. 尽量以HTTP POST方法传输资料
使用GET方法容易让有心人士得到资料,虽然POST并非万无一失,但比起GET至少较为安全。

3. 不要直接用eval函数唤起JSON对象
JSON(JavaScript Object Notation)是采用JavaScript对象的资料格式,从后端传到Ajax程序时,必须採用eval函式将它从字串转成对象,这时必须先行检查资料中是否有非法字符,以免非法程序借机启动。

4. 限制使用者可用的HTML语法
许多Ajax网站允许使用者在留言中使用HTML语法,而某些特定语法应该严格限制,例如<plaintext>或是<!- -这类语法,都会让置于之后的程序代码失效。

5. 禁止可留言的网页页面使用JavaScript语法
虽然乍看之下觉得不可思议,不过的确在一些论坛平台上发生过,这给XSS攻击开了大门。

6. 使用Ajax框架,必须注意安全性问题
由于骇客利用JavaScript进行攻击手法日新月异,当网页开发人员利用Ajax框架时,必须注意框架本身是否对某些特定手法具有防治行为。

7. 让用户知道自己身处的状况
当Ajax载入资料量大时,有时会让使用者产生错觉,不确定刚刚按下的按扭是否发生作用。因此开发人员必须设计适当的提示,让使用者了解目前程序的执行状况。

8. 保持小量传输
Ajax的灵活性在于动态改变局部资料量,因此小量传输资料才能达到最高效益。如果一大张资料表都要透过DOM的操作来改变,不如就由后端程序与资料库来操作,效益更高。

9. 注意易用性与内容的平衡
Ajax虽然为使用者带来浏览时的易用性,不过如果将所有内容都透过Ajax来产生,会造成搜索引擎无法索引资料的情况。因此与内容相关的部分,需谨慎使用Ajax。

10. 执行优雅降级原则
网站不要全面性採用Ajax技术,而只是局部增加互动性,这时必须考量不支持JavaScript的使用者,设法在不使用这些功能的前提下,让他们还能正常地浏览网站。

(0)

相关推荐

  • ajax 开发守则 10条说明

    1. 前.后端都要做好安全的把关工作 不能单靠前端做安全验证工作,后端也必须有过滤机制,检验前方传来的资料.由于Ajax也会接收后端传送来的资料,对这些资料都要采取不信任态度,必须加以检查. 2. 尽量以HTTP POST方法传输资料 使用GET方法容易让有心人士得到资料,虽然POST并非万无一失,但比起GET至少较为安全. 3. 不要直接用eval函数唤起JSON对象 JSON(JavaScript Object Notation)是采用JavaScript对象的资料格式,从后端传到Ajax程

  • 如何使用ajax开发web应用程序第1/2页

    作者: Jonathan Fenocchi时间:2005.10.25译者:Sheneyan英文原文:http://webreference.com/programming/javascript/jf/column12/index.html 在过去,由于为了获得新数据而不得不重新加载web页面(或者加载其他页面)导致web应用程序发展被限制.虽然有其他方法可用(不加载其他页面),但是这些技术都没有被很好地支持而且有bug成灾的趋向.在过去的几个月里,一个过去并不被广泛支持的技术已经被越来越多的we

  • 10条建议帮助你创建更好的jQuery插件

    本文总结了帮助你创建更好jQuery插件的10条建议.分享给大家供大家参考.具体说明如下: 在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式.这样我就可以 copy & paste 大部分的代码结构,只要专注最主要的逻辑代码就行了.使用相同的设计模式和架构也让修复bug或者二次开发更容易.一套经过验证的架构可以保证我的插件不出大的问题,不论插件简单还是复杂.我在这里分享10条我总结的经验. 1. 把你的代码全部放在闭包里面 这是我用的最多的一条.

  • 很受用的Web创业的10条戒律

    很受用的Web创业的10条戒律建议大家都看下1.收缩:专注于一个尽可能小的可能存在的难题,而你又能够解决这个难题.不要想着什么都做,贪多嚼不烂,搞不好就成了模仿者.小可以变大,船小好调头,小可以带给你很多优势,缝隙市场可以变成一个大市场.不要试图把1亿上网用户都当成你的用户,没用,能真正解决一部分用户的一部分需求,就足够你玩儿的. 2.差异:要记住很多人都在做着跟你一样的事情,而其中一个是Google.在这个市场上,专才比通才有用.不一定要做多么领先的事情,寻常的事情你同样可以做得跟别人不一样,

  • angular6开发steps步骤条组件

    本文实例为大家分享了angular6开发steps步骤条组件的实现代码,供大家参考,具体内容如下 1.先展示步骤条效果 2.使用angular命令快速创建组件 ng g c component/steps 创建的组件在component文件夹下面 打开steps.component.ts文件,可以看到selector的值是app-steps import { Component, OnInit} from '@angular/core'; @Component({ selector: 'app-

  • layui问题之渲染数据表格时,仅出现10条数据的解决方法

    一.问题 ajax获取服务端数据之后,要动态渲染table,但数据仅仅数显了10条,并没有渲染所有的数据. 二.经过 看一下表格需要的数据,0-9条的数据都自动有一个名为LAY_TABLE_INDEX的键值对,但10条及之后的数据都没有这个键值对. 很是纳闷,这个表格不带分页功能,应该不需要写limit对数据进行限制 table.render({ elem: '#orderTable' ,height: 400 ,cols: [[ //标题栏 {field: 'status', title: "

  • MySQL数据库开发的36条原则(小结)

    前言 这些原则都是经历过实战总结而成 每一条原则背后都是血淋淋的教训 这些原则主要是针对数据库开发人员,在开发过程中务必注意 一.核心原则 1.尽量不在数据库做运算 俗话说:别让脚趾头想事情,那是脑瓜子的职责 作为数据库开发人员,我们应该让数据库多做她所擅长的事情: 尽量不在数据库做运算 复杂运算移到程序端CPU 尽可能简单应用MYSQL 举例: 在mysql中尽量不要使用如:md5().Order by Rand()等这类运算函数 2.尽量控制单表数据量 大家都知道单表数据量过大后会影响数据查

  • Oracle结合Mybatis实现取表TOP 10条数据

    之前一直使用mysql和informix数据库,查表中前10条数据十分简单: 最原始版本: select top * from student 当然,我们还可以写的复杂一点,比如外加一些查询条件? 比如查询前10条成绩大于80分的学生信息 添加了where查询条件的版本: select top * from table where score > 80 但是!!oracle中没有top啊!!!!那么该如何实现呢? 嗯,可以用rownum! oracle中原始版本 select * from st

  • Ajax案例集下载:新增分页查询案例(包括《Ajax开发精要》中的两个综合案例) 下载

    在<Ajax开发精要>中,我构建了两个简单的综合范例.一个是支持增.删.改.模糊搜索的简单留言簿,另外一个是模拟MSN Space所提供的日志评论.固定链接.引用通告以及自定义列表管理的功能. 今天新增一个分页查询的案例.同样的,与之前的两个案例类似,分页查询的持久化数据依然来自xml文档,以方便网友的拷贝和部署.构建这个案例的方法与之前两个案例大致相当,都是使用XMLHttpRequest.responseXML获取数据,然后填充到页面的相应位置.构建过程中注意代码复用. <Ajax开

  • 四种数据库随机获取10条数据的方法

    四种数据库随机获取10条数据的方法 SQL Server: 复制代码 代码如下: SELECT TOP 10 * FROM T_USER ORDER BY NEWID() ORACLE: 复制代码 代码如下: SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10 MySQL: 复制代码 代码如下: SELECT * FROM T_USER  ORDER BY  RAND() LIM

随机推荐