4、web开发原则

本文介绍了网页安全的基本原则,包括用户权限最小化、浏览器端处理、客户端验证与服务器验证结合等。并通过实例展示了如何防范XSS跨站脚本攻击,特别强调了在不同浏览器中的表现差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、用户权限最小原则:只允许用户做什么。
2、用户不能查看源码(java/c#)。
3、尽量在浏览器端处理(js)
4、客服端验证不能代替服务器验证([color=red]浏览器禁用js、伪造http请求[/color])
5、私密信息不要写在js/html中
6、xss跨站脚本漏洞 cross-site script
说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示存在危及应用程序安全的尝试,如跨站点脚本攻击。若要允许页面重写应用程序请求验证设置,请将 httpRuntime 配置节中的 requestValidationMode 特性设置为 requestValidationMode="2.0"。示例: <httpRuntime requestValidationMode="2.0" />。设置此值后,可通过在 Page 指令或 <pages> 配置节中设置 validateRequest="false" 禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkId=153133。

HttpRuntime的Web.config里的配置
没有就添加一个:
<system.web>
<httpRuntime requestValidationMode="2.0" />

<%@ Page Language="C#" [color=cyan]validateRequest="false"[/color] AutoEventWireup="true" CodeBehind="jojoo.aspx.cs" Inherits="jojo.jojoo" %>


http://localhost:12831/jojoo.aspx?msg=++%3Cform+id%3d+%22dd%22+action%3d%22http%3a%2f%2fwww.baidu.com%22+%3E%3Cinput+
type%3d%22text%22+value%3d%22222%22+%2f%3E%3Cinput+type%3d%22submit%22+%2f%3E%3C%2fform%3E

protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Request.Params["msg"];
}

<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

<form id= "dd" action="http://www.baidu.com" ><input type="text" value="222" /><input type="submit" /></form>
<script type="text/javascript">alert(0);</script>

firefox可行,google chrome不行;
转义: Label1.Text = HttpUtility.HtmlEncode(Request.Params["msg"]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值