如果禁用了javascript,请隐藏表单

时间:2013-10-20 13:51:34

标签: javascript asp.net security

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

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


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

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

使用JavaScript重定向用户的另一种方法但是这样可以让99%的用户说出来,而且这个方法并不可爱,会减慢网站的速度......
window.location="http://www.location.com/page.aspx";

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

2 个答案:

答案 0 :(得分:2)

听起来你在某种程度上依赖于javascript的安全性(基于安全标记以及客户可以绕过你的方案的各种解决方法的描述)。

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

所以,让它可用​​/有吸引力,不要担心高级用户可能会绕过你的计划 - 无论客户提出什么要求,都要确保你的网站是安全的。

答案 1 :(得分:0)

使用jQuery的东西:

示例1:

<div id='form_placeholder'></div>

<script type='text/javascript'>

var form='<form><input type="text" name="cat"/><input type="submit" value="submit" name="submit"/></form>';

$(document).ready(function(){

    $('#form_placeholder').html(form);

});

</script>

如果启用了javascript,则脚本应显示该表单。

或者只是

示例2:

<div id='form_placeholder' style='display:none'>
<form>
<input type="text" name="cat"/>
<input type="submit" value="submit" name="submit"/>
</form>
</div>

<script type='text/javascript'>

 $(document).ready(function(){

        $('#form_placeholder').show();

    });

</script>