Asp.net 服务器端控件隐藏-是否可以在客户端读取值?

Asp.net 服务器端控件隐藏-是否可以在客户端读取值?,asp.net,security,hidden,server-side,client-side,Asp.net,Security,Hidden,Server Side,Client Side,一个简短的问题。我在服务器端运行了两个文本框,并关闭了它们的可见性。我正在使用两个ASP.NET控件,它们要求文本框存在。但是,我是从后面的代码填充它们的,不希望用户看到这一点。用户能否打开可见性并查看文本框中输入的值?我尝试使用FireBug,但似乎无法选择可见性选项来编辑它。不过,我对Firebug还很陌生,所以可能还有其他方法?或者,在服务器端运行it是否意味着客户端永远无法查看文本框的内容? 谢谢使用Visible的服务器端属性设置为false将导致控件根本无法在浏览器中呈现,这意味着用

一个简短的问题。我在服务器端运行了两个文本框,并关闭了它们的可见性。我正在使用两个ASP.NET控件,它们要求文本框存在。但是,我是从后面的代码填充它们的,不希望用户看到这一点。用户能否打开可见性并查看文本框中输入的值?我尝试使用FireBug,但似乎无法选择可见性选项来编辑它。不过,我对Firebug还很陌生,所以可能还有其他方法?或者,在服务器端运行it是否意味着客户端永远无法查看文本框的内容?
谢谢

使用Visible的服务器端属性设置为false将导致控件根本无法在浏览器中呈现,这意味着用户无法在页面源或任何内容中查看它们


但是,如果您使用设置为“无”的CSS显示属性,则该控件实际上是渲染的,只是在浏览器中不可见……尽管如此,由于它是服务器端控件,该值将位于加密的Viewstate上,用户需要精通技术才能实际获取控件值。使用Visible的服务器端属性设置为false将导致控件根本无法在浏览器中呈现,这意味着用户无法在页面源或任何内容中查看控件


但是,如果您使用的CSS显示属性设置为“无”,则该控件实际上是渲染的,只是在浏览器中不可见……不过,由于它是服务器端控件,因此该值将位于Viewstate上,该Viewstate是加密的,如果您可以看到Firebug中的字段,则用户需要精通技术才能实际获取控件值,这意味着有足够的资源可供客户使用。您可能需要检查
display
属性。如果您可以在Firebug中看到字段,则表示客户端有可用字段。您可能需要检查
display
属性。ViewState中的内容是原始值的副本,实际值以纯文本形式存在于元素的value属性中。用户不必比使用“查看源代码”选项来查看值更精明。@Guffa这不一定是真的。此外,ViewState中的值至少是经过编码的,尽管它们也可以加密。除此之外,ViewState的结构没有文档记录,因此没有可靠的方法对其进行解码。因此,为了确认,如果我对文本框使用
,那么客户端永远看不到这些值?或者您是说,即使数据没有呈现,它仍然以ViewState(可以轻松解码)的形式传递?Thanks@Eilon你错了。如果您使用CSS隐藏控件,则该值在源代码中肯定以纯文本形式可见。@Skoder:如果您使用visible属性阻止控件呈现,则该值不容易看到。ViewState可以解码,但不需要某种工具。您可以关闭控件的ViewState,以防止值最终出现在源代码中,但是每次加载页面时都必须将值放入控件中。ViewState中的值是原始值的副本,实际值是元素中的value属性中的纯文本。用户不必比使用“查看源代码”选项来查看值更精明。@Guffa这不一定是真的。此外,ViewState中的值至少是经过编码的,尽管它们也可以加密。除此之外,ViewState的结构没有文档记录,因此没有可靠的方法对其进行解码。因此,为了确认,如果我对文本框使用
,那么客户端永远看不到这些值?或者您是说,即使数据没有呈现,它仍然以ViewState(可以轻松解码)的形式传递?Thanks@Eilon你错了。如果您使用CSS隐藏控件,则该值在源代码中肯定以纯文本形式可见。@Skoder:如果您使用visible属性阻止控件呈现,则该值不容易看到。ViewState可以解码,但不需要某种工具。您可以关闭控件的ViewState,以防止该值最终出现在源代码中,但是每次加载页面时都必须将该值放入控件中。