本文目录一览:
asp网站如何防止XSS攻击
asp中防止xss攻击的方法如下:
确保所有输出内容都经过 HTML 编码。
禁止用户提供的文本进入任何 HTML 元素属性字符串。
根据 msdn.microsoft.com/library/3yekbd5b 中的概述,检查 Request.Browser,以阻止应用程序使用 Internet Explorer 6。
了解控件的行为以及其输出是否经过 HTML 编码。如果未经过 HTML 编码,则对进入控件的数据进行编码。
使用 Microsoft 防跨站点脚本库 (AntiXSS) 并将其设置为您的默认 HTML 编码器。
在将 HTML 数据保存到数据库之前,使用 AntiXSS Sanitizer 对象(该库是一个单独的下载文件,将在下文中介绍)调用 GetSafeHtml 或 GetSafeHtmlFragment;不要在保存数据之前对数据进行编码。
对于 Web 窗体,不要在网页中设置 EnableRequestValidation=false。遗憾的是,Web 上的大多数用户组文章都建议在出现错误时禁用该设置。该设置的存在是有原因的,例如,如果向服务器发送回“X”之类的字符组合,该设置将阻止请求。如果您的控件将 HTML 发送回服务器并收到图 5 所示的错误,那么理想情况下,您应该在将数据发布到服务器之前对数据进行编码。这是 WYSIWYG 控件的常见情形,现今的大多数版本都会在将其 HTML 数据发布回服务器之前对该数据进行正确编码。
对于 ASP.NET MVC 3 应用程序,当您需要将 HTML 发布回模型时,不要使用 ValidateInput(false) 来关闭请求验证。只需向模型属性中添加 [AllowHtml] 即可,如下所示:
public class BlogEntry
{
public int UserId {get;set;}
[AllowHtml]
public string BlogText {get;set;}
}
如何避免XSS攻击和SQL注入
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.
防护
归纳一下,主要有以下几点:
1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和
双"-"进行转换等。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装
6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。
如何实现php的安全最大化?怎样避免sql注入漏洞和xss跨站脚本攻击漏洞
使用php安全模式
服务器要做好管理,账号权限是否合理。
假定所有用户的输入都是“恶意”的,防止XSS攻击,譬如:对用户的输入输出做好必要的过滤
防止CSRF,表单设置隐藏域,post一个随机字符串到后台,可以有效防止跨站请求伪造。
文件上传,检查是否做好效验,要注意上传文件存储目录权限。
防御SQL注入。
避免SQL注入漏洞
1.使用预编译语句
2.使用安全的存储过程
3.检查输入数据的数据类型
4.从数据库自身的角度考虑,应该使用最小权限原则,不可使用root或dbowner的身份连接数据库。若多个应用使用同一个数据库,也应该为数据库分配不同的账户。web应用使用的数据库账户,不应该有创建自定义函数,操作本地文件的权限。
避免XSS跨站脚本攻击
1.假定所有用户输入都是“邪恶”的
2.考虑周全的正则表达式
3.为cookie设置HttpOnly,防止cookie劫持
4.外部js不一定可靠
5.出去不必要的HTML注释
6. 针对非法的HTML代码包括单双引号等,使用htmlspecialchars()函数。