我们在用户会话开始时为 XSRF/CSRF 设置了一个 cookie。在某些时候,用户导航到不同的域(例如支付),执行一些操作,然后导航到我们的域。返回我们的域后,Firefox 和 Safari 无法读取设置为相同站点的 cookie:Strict,Chrome 可以。对于 Chrome 和 Firefox(但不是 Safari),它确实显示在 cookie 的开发人员工具部分下。
MDN 上的同一站点解释解释说,在未来的请求中,cookie 将在请求标头中发送。对于所有三个浏览器,情况都是如此。关于是否应该可以通过 document.cookie 读取此 cookie 的解释尚无定论。对于 Firefox、Safari 和 Chrome,我们可以读取“Lax”cookie,但对于 Chrome,我们只能读取“Strict”cookie。这在页面刷新时也是如此,但在打开新选项卡时(即仅通过导航)则不然。
这是 Safari 和 Firefox 中的错误,还是 Chrome 中的错误 - 还是规范尚无定论?规格(w3?)是什么?
可以使用带有两个虚拟主机test.internalsite.com和的网络服务器轻松在本地重新创建它test.externalsite.com,这些页面带有一些 PHP:
<?php
setcookie("CSRFLax", "hiLax", array("path"=>"/", "samesite"=>"Lax", "domain"=>"test.internalsite.com"));
setcookie("CSRFStrict", "hiStrict", array("path"=>"/", "samesite"=>"Strict", "domain"=>"test.internalsite.com"));
?>
<html>
<body>External site
<p><a href="http://test.externalsite.com">Go to External site</a></p>
<p>Document cookie: <script>document.write(document.cookie);</script></p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和
<html>
<body>External site
<a href="http://test.internalsite.com">Go to internal Site</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我strnatcmp在比较函数中用于对表中的人名进行排序.对于我们的比利时客户,我们得到了一些奇怪的结果.他们的名字有'Van der Broecke'和'Vander Veere',然后strnatcasecmp("Van der", "Vander")回归0!
由于自然比较的目的是按照人类的意愿进行排序,我不明白为什么空间被完全忽视.
例如:
$names = array("Van de broecke", "Vander Veere", "Vande Muizen", "Vander Zoeker", "Van der Programma", "vande Huizen", "vande Kluizen", "vander Muizen", "Van der Luizen");
natcasesort($names);
print_r($names);
Run Code Online (Sandbox Code Playgroud)
得到:
Array (
[0] => Van de broecke
[5] => vande Huizen
[6] => vande Kluizen
[2] => Vande Muizen
[8] => Van der Luizen
[7] => vander Muizen
[4] => Van der Programma
[1] => Vander Veere
[3] => Vander …Run Code Online (Sandbox Code Playgroud) 我已经在我的 Java 源文件中为“显示注释”设置了一个键盘快捷键,因为我经常想知道 Git 修订是何时进行的,有时是由谁进行的。左边厚厚的边距有很多颜色,在编码时非常分散注意力,所以我想用键盘命令将其关闭。
按照help.eclipse.org 上的建议关闭修订信息,我现在将指针移至边距,右键单击,选择Revisions,然后单击Hide Revision Information。有没有办法为隐藏修订信息分配键盘快捷键?如果没有,是否有不同的方法来实现我可以捷径的动作?
如果重要的话,我已经安装了 EGit(尽管我尽可能少地使用它)。
我们已经将我们的环境升级为WLS12.2.1.2.0来自WLS12.1.1.0并遇到@Startup了@Singletonbean方法中的事务问题。
所述 bean 部署在 EAR 内,该 EAR 将消息发布到事务下的 JMS 队列。这在目标服务器运行时有效,但在容器启动期间失败:
Timeout during commit processing
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:281)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:301)
at weblogic.transaction.internal.CoordinatorImpl_12212_WLStub.commit(Unknown Source)
at weblogic.transaction.internal.TransactionImpl$1.run(TransactionImpl.java:378)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
at weblogic.transaction.internal.SecureAction.runAction(SecureAction.java:71)
at weblogic.transaction.internal.PlatformHelperImpl.runAction(PlatformHelperImpl.java:1493)
at weblogic.transaction.internal.TransactionImpl.commit(TransactionImpl.java:375)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:270)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:257)
at weblogic.ejb.container.manager.BaseEJBManager.handleLifecycleCallbackTx(BaseEJBManager.java:412)
at weblogic.ejb.container.manager.SingletonSessionManager.constructAndInitBean(SingletonSessionManager.java:301)
...
Caused by: javax.transaction.SystemException: Timeout during commit processing
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:340)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:257)
at weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:99)
at weblogic.transaction.internal.CoordinatorImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:645)
at weblogic.rmi.internal.BasicServerRef$2.run(BasicServerRef.java:534)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:531)
at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:138)
... 7 …Run Code Online (Sandbox Code Playgroud) 我目前通过在routes.js中包含此行,将每个页面路由到我的pagesController,这在以前的路由中找不到:
this.match('/:page', { controller: 'pages', action: 'show' });
Run Code Online (Sandbox Code Playgroud)
如果没有找到,我有想法让我的PagesController句柄服务404:
PagesController.show = function() {
var page = this.param('page');
if(page != undefined){
page = page.replace(".html","");
try {
this.render("./"+page);
} catch(error){ //Failed to look up view -- not working at the moment =(
this.redirect({action : "404"});
};
}
return;
};
Run Code Online (Sandbox Code Playgroud)
但我的想法是失败的.错误无法捕获,因此致命的仍然可以获得.我应该将fn附加到渲染调用吗?有什么论据?它是如何工作的?(/简单的问题).
我在 w3.org 上发现了这个文档: http://www.w3.org/TR/2002/WD-css3-border-20021107/borderstyles.png,它显示了 border-style: wave 属性。我急于尝试,在 Firefox 和 Chrome 中进行了测试,但可惜。是否有任何时候完全支持此属性设置?适用于哪些浏览器?
border ×1
cookies ×1
csrf ×1
css ×1
eclipse ×1
express ×1
firefox ×1
git ×1
jakarta-ee ×1
locomotivejs ×1
natsort ×1
natural-sort ×1
node.js ×1
php ×1
safari ×1
samesite ×1
singleton ×1
startup ×1
weblogic12c ×1