相关疑难解决方法(0)

Frame Buster Buster ......需要buster代码

假设您不希望其他网站在以下位置"构建"您的网站<iframe>:

<iframe src="http://example.org"></iframe>
Run Code Online (Sandbox Code Playgroud)

因此,您将反框架,帧破坏JavaScript插入到您的所有页面中:

/* break us out of any containing iframes */
if (top != self) { top.location.replace(self.location.href); }
Run Code Online (Sandbox Code Playgroud)

优秀!现在你自动"破解"或突破任何包含iframe.除了一个小问题.

事实证明,您的帧破坏代码可能被破坏,如下所示:

<script type="text/javascript">
    var prevent_bust = 0  
    window.onbeforeunload = function() { prevent_bust++ }  
    setInterval(function() {  
      if (prevent_bust > 0) {  
        prevent_bust -= 2  
        window.top.location = 'http://example.org/page-which-responds-with-204'  
      }  
    }, 1)  
</script>
Run Code Online (Sandbox Code Playgroud)

此代码执行以下操作:

  • 每次浏览器尝试通过window.onbeforeunload事件处理程序离开当前页面时,都会递增计数器
  • 设置一个通过每毫秒触发的计时器,setInterval()如果它看到计数器递增,则将当前位置更改为攻击者控制的服务器
  • 该服务器提供具有HTTP状态代码204的页面,这不会导致浏览器在任何地方导航

我的问题是 - 这更像是一个JavaScript拼图,而不是一个实际的问题 - 你怎么能打败破坏框架的破坏者呢?

我有一些想法,但在我的测试中没有任何效果:

  • 试图通过清除onbeforeunload事件onbeforeunload = null …

html javascript iframe framebusting

415
推荐指数
11
解决办法
13万
查看次数

如何让浏览器提示保存密码?

嘿,我正在开发一个具有登录对话框的Web应用程序,其工作方式如下:

  1. 用户点击"登录"
  2. 登录表单HTML使用AJAX加载并显示在页面上的DIV中
  3. 用户输入用户/传递字段并单击提交.它不是<form>- 用户/通过AJAX提交
  4. 如果用户/通行证没问题,则页面会在用户登录时重新加载.
  5. 如果用户/传递不好,页面不会重新加载,但DIV中会出现错误消息,用户可以再次尝试.

这是问题所在:浏览器从不提供通常的"保存此密码?是/从不/不立即"提示它为其他网站提供的.

我尝试使用"autocomplete ='on'" 包装<div>in <form>标签,但这没有任何区别.

是否可以让浏览器提供存储密码而无需重新修改我的登录流程?

谢谢Eric

ps添加到我的问题,我肯定使用存储密码的浏览器,我从来没有点击"永远不会这个网站"...这是一个技术问题,浏览器没有检测到它是一个登录表单,而不是操作员错误:-)

browser ajax firefox login

135
推荐指数
9
解决办法
12万
查看次数

在自己的页面上提交HTML表单

我想要一个html表单提交给自己.我该如何使用该action属性?

  1. <form action="">
  2. <form action="#">
  3. <form action="some/address">
  4. <form>

哪个更好?

html forms url http

93
推荐指数
5
解决办法
17万
查看次数

表格有动作=""

我刚刚发现(困难的方法),当你有一个HTML表单时action="",Webkit浏览器会以不同的方式对待Firefox和Internet Explorer.

在FF和IE中,这两个表单标签是等效的:

<form method="post" action="">

<form method="post">
Run Code Online (Sandbox Code Playgroud)

他们都会将表格提交回同一页面.然而,Safari和Chrome会将第一个表单发送到默认页面(index.php或其他) - 第二个表单与FF/IE的工作方式相同.

我很快就破解了我的代码,以便在通常打印空操作的任何地方,它根本不添加动作属性.

这看起来非常混乱,而不是做事的最佳方式.有谁能建议更好的方法?另外,任何人都可以告诉我为什么Webkit会做这样的事情?

html forms

26
推荐指数
3
解决办法
2万
查看次数

没有操作的HTML表单

在Django/Pinax中,我遇到了登录表单,其开头如下:

<form class="login" method="POST" action="">
Run Code Online (Sandbox Code Playgroud)

它运作得非常好.所以我假设某些Java脚本或Django框架中的某些东西将值放入action属性中.
所以,我的问题:

  • Django如何插入动作?
  • 他们为什么这样做?
  • 我怎样才能知道这个表格的作用是什么?

更新:我发现这根本不是Django的事情,而是大多数浏览器所做的事情.

html forms django django-forms

26
推荐指数
2
解决办法
3万
查看次数

CTRL + S提交表单和所有输入

我有一个表单,我在我的CMS中使用,我想添加额外打开以保存表单上的按键:"Ctrl + S"

这适用于除提交按钮之外的所有输入都没有被发送,这个简单的例子显示了我的意思:

<?php 
if(isset($_POST['save'])){
    die('save= ' . $_POST['save']);
}
?>
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />

    <title></title>

    <style type="text/css">
        html { height: 100%; }
        body {
            color: #262626;
            background: #f4f4f4;
            font: normal 12px/18px Verdana, sans-serif;
            height: 100%;
        }
        #container {
            width: 760px;
            margin: 0 auto;
            padding: 10px 60px;
            border: solid 1px #cbcbcb;
            background: #fafafa;
            -moz-box-shadow: 0px 0px 10px #cbcbcb;
            -webkit-box-shadow: 0px 0px 10px #cbcbcb;

            min-height: 100%;
            height: auto !important;
            height: 100%;
        }

    </style>

    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script …
Run Code Online (Sandbox Code Playgroud)

forms jquery

12
推荐指数
1
解决办法
8475
查看次数

第一个XMLHttpRequest失败但仅在IE9上失败

我有一个网站,我输入用户名/密码,然后单击登录按钮.登录按钮生成XMLHttpRequest对象,并将其触发.

在Chrome,Firefox,Opera,Safari,Android设备,iOS设备上运行正常.只要我在HTTP地址而不使用HTTPS,IE9就可以工作.

在HTTPS上,IE9的行为如下:

第一个登录请求永远不会返回任何内容.F12屏幕确实在网络选项卡中显示我的登录请求,所有看起来都正确.脚本选项卡永远不会抛出错误.没有任何反应.

这是疯狂的部分: - 如果我再次点击登录,它实际上是有效的. - 如果我点击浏览器上的刷新,然后登录,那也将有效!

我提出如下要求:

   var x = new XMLHttpRequest();
   x.open("POST", "/Relative/URL/Path", true);
   x.setRequestHeader("Content-Type", "text/plain");
   x.onreadystatechange = function () {
      if ((x.readyState == 4) && (x.status == 200)) {
            // handle callback
      }
   }
   x.send(my request);
Run Code Online (Sandbox Code Playgroud)

当失败时,调试器将从x.send()行转到onreadystatechange代码.readyState将为1.这将是我可以调试的最后一个,因为没有其他事情发生.

任何想法都将非常感激.

[编辑]:我让一个请求去看看会发生什么.onreadystatechange事件再次使用readyState = 4和status = 12152触发.IE9的F12屏幕中的网络视图显示结果为Aborted,时间为1589.07s.Google搜索显示这意味着服务器上的连接已关闭.

[编辑2]:基于下面的评论,我将此代码重新编写为仅使用jQuery的ajax()方法.我认为这可能有可能消除我的错误代码.没有这样的运气.出现相同的行为.

   $.ajax({
      "url": sUrl,
      "success": function (data, textStatus, x) {
         workerCallback(data, id, "");
      },
      "error": function (x, testStatus, errorThrown) {
         workerCallback("nc", id, errorThrown);
      },
      "contentType": "text/plain",
      "data": JSON.stringify(req),
      "dataType": "json",
      "timeout": 1600000, …
Run Code Online (Sandbox Code Playgroud)

javascript debugging ssl xmlhttprequest internet-explorer-9

11
推荐指数
1
解决办法
8896
查看次数

Django CSRF框架有很多失败

我从我的站点上的CSRF Django中间件(来自SVN中继的版本)中遇到了很多故障.我得到的唯一错误是:CSRF失败:原因= CSRF令牌丢失或不正确.

我怎么能诊断这些CSRF错误来自哪里?我自己不能导致CSRF错误,但是我设置网站只要触发CSRF错误视图就给我发电子邮件,所以我知道它经常发生.

django csrf

6
推荐指数
1
解决办法
9689
查看次数

通过jquery.ajax发布表单数据时,这种现象会让我感到困惑

这是我的表格:

<form id="login_form">
    <table border="0">
        <tr>
            <td>username: </td>
            <td colspan="10">
                <input id="username" name="username" type="text" />
            </td>
        </tr>
        <tr>
            <td>password: </td>
            <td>
                <input id="passwd" name="passwd" type="password" />
            </td>
        </tr>
        <tr style="text-align:center">
            <td>
                <input id="login_submit" type="submit" title="submit" />
            </td>
            <td>
                <input type="reset" title="reset" />
            </td>
        </tr>
    </table>
</form>
Run Code Online (Sandbox Code Playgroud)

我的jquery代码:

$(function(){
    jQuery("#login_submit").click(function() {
        jQuery.ajax({
            url:'./login/',
            type:'post',
            data:$("#login_form").serialize(),
            dataType:'html',
            async: false,
            success:function(backData)    {
                alert(data);
            },
            error:function(err){
                alert('error = ' + err);
            }
        });
    });
}); 
Run Code Online (Sandbox Code Playgroud)

我感到困惑的是,当我访问url:时http://192.168.0.3/CarKeeperServer/user/login.jsp,单击提交按钮(该页面不会指向新页面,因为jquery代码片段中没有重定向代码),并且url将更改为http://192.168.0.3/CarKeeperServer/user/login.jsp?username=df&passwd=sd,exposes我的用户名和密码就像在GET方法中一样.谁能解释为什么会发生这种情况以及解决方案是什么?非常感谢!

jquery post

2
推荐指数
1
解决办法
73
查看次数

HTML中的action =""和action ="#"之间的区别

我已经看到了两种设置表单动作属性的方法.

#1.空动作属性:

action=""
Run Code Online (Sandbox Code Playgroud)

#2.Action属性#:

action="#"
Run Code Online (Sandbox Code Playgroud)

两者有什么不同?

html php forms

0
推荐指数
1
解决办法
97
查看次数