HTML应用安全

XSS (Cross-site scripting)

XSS,跨站脚本攻击。

SQL注入(SQL injection)

在接受不确定输入内容(如第三方站点消息,URL参数,用户创建的文本批注等)时,在使用前对数据进行验证并且在展示时进行适当的编码是必不可少的,否则,可能会有恶意用户对网站进行攻击,轻者只是传递不规范的数据,严重的可能攻击服务器,扰乱网站正常运行,如,注入SQL脚本清除服务器上所有数据等。

通常编写过滤器验证用户输入时,过滤器应该是基于白名单(已知的安全结构)配置编写,允许白名单通过,不允许其他输入;而基于黑名单(已知的不安全结构)配置编写,即允许除了黑名单之外的所有输入,是不安全的,因为还有许多未知的不安全事物。

JavaScript脚本注入

通常我们根据URL中的指定参数,返回给用户不同页面,提供给用户如下导航:

如上,若以上URL没有编码直接展示给用户,恶意攻击者可以截断URL并插入一个script元素:

http://blog.jhss.com/?id=%3Cscript%3Ealert%28%27Oh%20no%21%27%29%3C/script%3E

若其他用户访问这个URL页面,则会执行注入的script标签内的任意脚本,恶意者可以指定恶意代码,窃取用户信息。

还有很多方式被用来欺骗站点执行注入的代码,如下是我们应该考虑的方面:

  1. 当时用看似无害的元素时,应该限制其可以使用的属性。如,元素,如果允许使用onload属性,则攻击者可以使用onload属性添加回调函数执行任意指定代码。
  2. 当允许插入元素时,意味着当前页面所有

你可能感兴趣的:(htm,安全,xss,csrf)