javascript - 如果禁用 JavaScript,则隐藏表单

标签 javascript asp.net security

如果用户从浏览器或防火墙或任何其他永远不会显示表单的地方禁用了 JavaScript,我需要检查是否禁用 JavaScript。 我有很多搜索和解决方案,但不幸的是没有找到合适的。 - 使用带有无脚本标签的样式:删除样式可能会破坏这个样式...

<noscript>
<style type="text/css">
.HideClass {
display:none;
}
</style>
</noscript>


过去的代码可以正常工作,但是无脚本标记中存在很多问题,如 here

除此之外,我也不想使用无脚本标签重定向用户...此外,我可以快速停止加载页面以破坏此元或从 IE 禁用元标签:
<meta http-equiv="refresh" content="0; URL=Frm_JavaScriptDisable.aspx" />

另一种使用 JavaScript 重定向用户的方法,但这对于 99% 的用户来说都有效,但这种方法并不好,而且会减慢网站速度...
window.location="http://www.location.com/page.aspx";

是否有任何其他想法或建议来安全地使用 JavaScript...并阻止用户进入网站或查看我的表单,除非启用了 JavaScript...

最佳答案

听起来您以某种方式依赖 javascript 来确保安全(基于安全标记以及您对客户端可以用来绕过您的方案的各种解决方法的描述)。

这不是一个好主意 - 即使客户端已启用,您也不能依赖客户端正确执行您的 javascript。经验丰富的用户可以将他们喜欢的任何 http 方法发送到您的网络服务器,无论您为他们提供什么服务。他们还可以冒充任何客户端,具有任何功能(脚本、无脚本等),并且您无法可靠地判断他们报告的功能是否准确。

因此,使其可用/有吸引力,并且不必担心高级用户可能能够绕过您的方案 - 无论客户端发出什么请求,都确保您的网站是安全的。

关于javascript - 如果禁用 JavaScript,则隐藏表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19478140/

相关文章:

javascript - 通过 javascript 或 jquery 删除特定 div 索引后的任何子元素

javascript - 从 Leaflet map 中删除 geoJSON

asp.net - IIS 线程 100%,执行转储但不知道如何继续

node.js - 在 session ID 中包含工作端口号的安全影响

c# - 无法验证在 C# 中创建的签名

javascript - 小书签等待 Javascript 加载

javascript - Angular : Wrapping an element into a custom template with an angular attribute directive

Asp.Net 元素不从 Css 文件获取样式属性

c# - 重定向后验证用户

c# - JwtSecurityTokenHandler 和 TokenValidationParameters