小编sib*_*iba的帖子

没有HTTPS登录,如何安全?

对于Web应用程序,当HTTPS不可用作安全措施时,是否仍然可以使登录有点安全?例如:

  • Tokenize登录,难以重复攻击?
  • 以某种方式加密从HTML密码字段发送的密码?

特别是我正在使用CakePHP和AJAX POST调用来触发身份验证(包括提供的用户名和密码).

问题更新:

  • HTTPS不可用.期.如果您不喜欢这种情况,请将其视为一个理论问题.
  • 没有明确的要求,你有任何HTTP,PHP和浏览器(cookies,JavaScript等)在现实生活中提供(没有神奇的RSA二进制文件,PGP插件).
  • 问题是,什么是最好的,你可以摆脱这种情况,这比发送密码明文更好.了解每种此类解决方案的缺点是有利的.
  • 我们欢迎任何比普通密码更好的改进.我们的目标不是100%l33tG0Dhx0r-proff解决方案.难以破解比破解复杂更好,这比揭露密码的琐碎嗅探更好.

php security encryption ajax cryptography

75
推荐指数
6
解决办法
3万
查看次数

浏览器是否支持ajax加载的登录表单的自动完成功能?

我的问题是,浏览器的(IE&FF)自动完成功能不适用于我的登录表单.

我有一个带有CakePHP和jQuery的webapp.允许访问者不显眼地登录/注册.登录表单位于div中,通过AJAX加载.(这样可以在不重新加载页面的情况下登录.)

浏览器会将其识别为登录字段,因为它们会在单击登录时提示我保存凭据.他们确实保存了用户名/密码,因为它们出现在浏览器设置中保存的用户名/密码之间.但永远不会自动输入保存的用户名/密码.页面加载时,它们不会显示为预先输入.当我开始输入用户名时,用户名显示为建议,但即使您选择它,也不会在其旁边输入密码.为什么?我怎样才能使这个工作?

您可以自己测试,这是一个简单的AJAX登录表单:

http://gablog.eu/test/ajaxlogin.html

它加载以下登录表单,如果你转到下面的url,自动完成将只适用于普通表单,所以它不是表单本身的问题,而是它是AJAX加载:http: //gablog.eu /test/loginform.html

布局:

<div id="user-bar">
    <script type="text/javascript">
        $(function() {
           $("#user-bar").load('loginform.html').html();
        });
    </script>
</div>
Run Code Online (Sandbox Code Playgroud)

加载视图(未登录时):

<form id="form-login" action="" onsubmit="login(); return false;">
    <input type="text" id="username" name="username"/>
    <input type="password" id="password" name="password"/>
    <input type="submit" value="Login"/>
    <div id="login-error" class="error-message"></div>
</form>

<script type="text/javascript">
    function login() {
        $.post('/ajax/login', $("#form-login").serialize(), function(data) {
            if (data.success) {
                $("#user-bar").load('userbar.html').html();
            } else {
                $("#login-error").html(data.message);
            }
        }, "json");
    }
</script>
Run Code Online (Sandbox Code Playgroud)

澄清一下:我不想使用AJAX自动完成功能,我希望浏览器的自动完成功能能够用于我的登录表单.这是我的表单和浏览器之间的问题.jQuery提交似乎扮演次要角色,因为用户名/密码已保存.它们不是为加载ajax的HTML元素自动输入的!(测试站点不使用jQuery提交.)相关问题:浏览器自动完成/保存表单在ajax请求中不起作用

html php jquery autocomplete cross-browser

19
推荐指数
1
解决办法
5820
查看次数

Google custom search for images only

Since Google image search API is deprecated, one should use Google custom search API for this.

I've made a small example using it. My problem is I want to return google image search results only. Whereby this shows web results, and the user may switch to the image result. How can I show only the image results by default?

<div id="cse" style="width: 100%;">Loading</div>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
  google.load('search', '1', {language : 'hu'});
  google.setOnLoadCallback(function() {
    var customSearchOptions = { …
Run Code Online (Sandbox Code Playgroud)

javascript google-search-api google-image-search

19
推荐指数
3
解决办法
4万
查看次数

TestNG.xml套件包含所有包的所有文件

即将用Maven + TestNG + Selenium实现测试框架.

如何声明一个告诉TestNG运行所有测试的suite.xml ?我已经尝试了所有这些无济于事:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Toplevel TestNG configuration" verbose="10">
  <test name="all">
    <classes>
      <class name="*" />
    </classes>
  </test>
</suite>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Toplevel TestNG configuration" verbose="10">
  <test name="all">
    <groups>
      <run>
        <include name="*" />
        <exclude name="disabled" />
      </run>
    </groups>
  </test>
</suite>

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Toplevel TestNG configuration" verbose="10">
  <test name="all">
    <packages>
      <package name="*" />
    </packages>
  </test>
</suite>
Run Code Online (Sandbox Code Playgroud)

我需要指定具有不同参数的不同套件配置,但都要运行所有测试.我可以明确地挖掘的每个例子都列出了每个对我来说都不太理智的类或包.

java testng automated-tests maven

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

支持或弃用 URL 中的 HTTP 基本身份验证

在一个项目中,我们花费了大量精力来解决基本身份验证(因为 webdriver 测试依赖于它,而 webdriver 没有用于基本身份验证的 api),我记得 URL 中的基本身份验证显然不起作用。即无法加载http://username:password@url

只需谷歌“网址中的基本身份验证”,您就会发现很多人在抱怨:https : //medium.com/@lmakarov/say-goodbye-to-urls-with-embedded-credentials-b051f6c7b6a3

https://www.ietf.org/rfc/rfc3986.txt

不推荐在 userinfo 字段中使用“user:password”格式。

今天我把这个泥潭告诉了一个朋友,他说他们在 webdriver 测试中使用http://username:password@url风格的基本身份验证没有任何问题。我将当前的 Chrome v71 转到了一个演示页面,令我惊讶的是,我发现它确实运行良好:https://guest:guest@jigsaw.w3.org/HTTP/Basic/

这怎么可能??我们是否同时生活在平行维度中?哪一个是正确的:使用 URL 中的凭据的基本身份验证是受支持还是已弃用?(或者这可能是由于我找不到任何参考的投诉而重新添加到 Chrome 中的吗?)

google-chrome http basic-authentication

13
推荐指数
1
解决办法
2382
查看次数

CakePHP模型:COUNT(*)in Containable

我有一个CakePHP 1.3应用程序,并且非常喜欢用于获取数据的Containable行为.

让我们假设我的帖子与评论有一对多的关系.我使用Containable查询(用于分页)所有帖子和所属的注释的列表.但我只对每个帖子有多少评论感兴趣.我没有找到任何方法来实现这个包含可查询的查询而不获取所有注释行.我试过了:

$this->paginate=array(
            'fields' => 'Post.title, Post.created',
            'contain' => array('Comment'=>'COUNT(*) AS count'),
        );
Run Code Online (Sandbox Code Playgroud)

结果"模型"注释"与模型"计数"错误消息无关.

$this->paginate=array(
            'fields' => array('Post.title, Post.created'),
            'contain' => array('Comment'=>array('fields'=>'COUNT(*) AS count'),
        );
Run Code Online (Sandbox Code Playgroud)

如果不起作用,结果集为每个Post包含一个空的Comment数组,除了最后一个数组,它包含count字段,但是所有注释的数量不仅仅是所属的注释.

我的另一个猜测是

$this->paginate=array(
            'fields' => 'Post.title, Post.created, COUNT(Comment.id)',
            'contain' => array('Comment'=>array('fields'=>''),
        );
Run Code Online (Sandbox Code Playgroud)

但这会导致错误,因为hasMany关系是独立查询的,因此Answer表不在Post条目的查询中.我怎样才能计算帖子的评论数量?

php pagination cakephp model

12
推荐指数
2
解决办法
9488
查看次数

Ajax驱动的JavaScript运行时断言框架

在使用越来越多的JavaScript代码处理更大的Web应用程序时,我们就如何提高代码质量进行了头脑风暴会议.

最初的想法之一是引入单元测试.这将是一个长期目标; 但是,这不会解决最常见的回归原因:更改DOM和浏览器特定问题.

单元测试在模拟的无DOM环境中运行,不在页面上.

我正在寻找的是一个断言框架,可以插入代码中,如下所示:

var $div = $("div.fooBarClass");
assertNotEmpty($div);
$div.fooBarAction();
Run Code Online (Sandbox Code Playgroud)

我发现断言框架可以做到这一点,但它们都可以登录控制台或进入DOM或打开一个愚蠢的弹出窗口.这些都不与(数千个)自动化测试一起工作. 我正在寻找的是一个运行时断言框架,它通过AJAX记录失败的断言!理想情况下,它应该是:

  • 内置了常见的断言.
  • 与JQuery模块,闭包集成.
  • 记录(通过Ajax)断言,文件名,页面,行号,失败原因,环境的一些预先配置的变量(浏览器,发行版本等).
  • 在出现故障时支持回调.(如果任何断言框架可以执行此操作,我很乐意写入回调来执行Ajax部分.)
  • 适用于所有浏览器.
  • 从生产版本中排除的微不足道.
  • 维护代码库.

javascript testing automated-tests unit-testing assertions

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

注释属性必须是类文字?为什么?常数也应该没问题

有人可以解释为什么String和Class注释参数的预期不同吗?为什么编译器需要Classes的文字,wherby也接受字符串的常量?

使用Spring的@RequestMapping的工作示例:

public class MyController {
    public static final String REQUEST_MAPPING = "/index.html";
    @RequestMapping(MyController.REQUEST_MAPPING) // ALL OK!
    ...
}
Run Code Online (Sandbox Code Playgroud)

使用TestNG的@Test的WTF示例:

public class MyControllerTest {
    public static final Class TEST_EXCEPTION = RuntimeException.class;
    @Test(expectedExceptions = MyControllerTest.TEST_EXCEPTION) // compilation error, WTF:
    // The value for annotation attribute Test.expectedExceptions must be a class literal
    ...
}
Run Code Online (Sandbox Code Playgroud)

什么工作当然是@Test(expectedExceptions = RuntimeException.class).但为什么?我看到的注释参数的唯一区别是它的类型:String vs Class.为什么Java编译器也接受String常量,但只接受类文字?

java testng jls

10
推荐指数
1
解决办法
8768
查看次数

在JSP EL枚举值中始终为空

当试图让EL条件工作时,我发现枚举值完全被忽略了.这在我看来与规范相反.

<c:out value='${com.foobar.data.BookingStatus.FAILED}' />
<c:out value='${BookingStatus.FAILED}' />
<c:out value='${com.foobar.data.BookingStatus.failed}' />
<c:out value='${BookingStatus.failed}' />
<c:if test="${empty BookingStatus.FAILED }">empty</c:if>
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,这些都评估为.为什么Enum类不被识别?这发生在当前稳定的Tomcat实例中.

这可能是类路径问题吗?Enum在控制器代码中成功使用,但在JSP中没有其他地方使用.它在部署的lib目录中的jar中提供.

更新:

我的目的是将提供的Integer与Enum的属性进行比较,如下所示:

<c:when test='${bookingInformation.bookingStatus eq BookingStatus.FAILED.code}'>
    FOOBARFAIL
</c:when>
Run Code Online (Sandbox Code Playgroud)

不幸的是,被检查的值无法更改,并且仍将是整数.Enum看起来如下(简化):

public enum BookingStatus {

    COMPLETED(0), FAILED(1);

    private final int code;

    private BookingStatus(int code) {
        this.code = code;
    }

    public int getCode() {
        return code;
    }

}
Run Code Online (Sandbox Code Playgroud)

我想避免硬编码FAIL等的Integer值,而是使用enum代替比较.

java enums jsp jstl el

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

Java app服务器能够破坏线程吗?如果有,怎么样?

销毁线程在Java中已弃用(并未根据javadoc实现),并且中断它只是在线程预期退出时的建议,但可能不会这样做.(不提供任何方法来杀死J VM中的线程是一个令人不安的设计,但我的问题与设计无关.)

Java应用程序服务器如何卸载应用程序?他们能以某种方式破坏正在卸载的应用程序的线程吗?如果有,怎么样?如果不是,那么具有无限循环的已部署应用程序的单个线程可能会导致整个应用服务器无法进行干预?

对不起,我不是为此编写测试用例,但我想知道那里到底发生了什么.

java multithreading jvm appserver

6
推荐指数
2
解决办法
1578
查看次数

创建JavaScript函数指针数组,而不调用它

我有下面的代码.我想有一个数组(按钮),其中一个元素指向一个函数(closeFlag).

<script type="text/javascript">
    var closeFlag = new function() {
        alert('Clicked');
    }
    var buttons = {
        'OK': closeFlag
    }
</script>
Run Code Online (Sandbox Code Playgroud)

但是,加载页面时会立即弹出警报.构造数组时,JavaScript不会将其用作指针,而是调用我的函数.为什么?我有什么错误,误解?

javascript json

4
推荐指数
1
解决办法
1291
查看次数

调试CakePHP应用程序时完全忽略断点

我正在NetBeans中开发一个CakePHP应用程序,最终设法将它连接到XAMPP调试会话(PHP 5.3.1 w/Xdebug v2.0.6-dev).

它在启动时非常有效,它会在第一行暂停应用程序.

但是我设置的任何进一步断点都被完全忽略了.它不会破裂也不会停顿; 它只是运行完成.

xdebug.extended_info设置为1,我尝试使用赤脚php项目,没有任何框架魔法,并且breakepoints按预期工作.

什么情况?我希望能够在(Cake)PHP中使用断点.

php cakephp xdebug zend-debugger

4
推荐指数
1
解决办法
1705
查看次数

如何通过XPath将XML映射到Java对象?

给出XML示例:

<fooRoot>
  <bar>
    <lol>LOLOLOLOL</lol>
  </bar>
  <noob>
    <boon>
      <thisIsIt></thisIsIt>
    </boon>
  </noob>
</fooRoot>
Run Code Online (Sandbox Code Playgroud)

哪个应该映射到:

class MyFoo {
  String lol;
  String thisIsIt;
  Object somethingUnrelated;
}
Run Code Online (Sandbox Code Playgroud)

约束:

  • 不应该转换XML,它是作为解析的org.w3c.dom.Document对象提供的.
  • 类不会也不会将1:1映射到XML.
  • 我只想将XML的特定路径映射到对象的特定字段.

我的梦想解决方案如下:

@XmlMapped
class MyFoo {

  @XmlElement("/fooRoot/bar/lol")
  String lol;

  @XmlElement("/noob/boon/thisIsIt")
  String thisIsIt;

  @XmlIgnore
  Object somethingUnrelated;
}
Run Code Online (Sandbox Code Playgroud)

有什么同样存在吗?我发现要么需要严格的1:1映射(例如JMX,JAXB)或所有字段的手动迭代(例如SAX,Commons Digester).

JiBX绑定定义最接近我正在进行的操作.但是,此工具可用于编组/解组Java对象的完整层次结构.我只想在运行时将XML文档的一部分提取到现有的Java bean中.

java xml xpath java-ee

3
推荐指数
1
解决办法
2150
查看次数