小编Ver*_*sen的帖子

我可以禁止在服务器请求时自动发送cookie吗?

我对网站开发很新.我正在一个用户使用用户名/密码登录的站点上工作,并从服务器获取一个sessionID作为响应.每个请求都会将此会话ID发送回服务器(并返回一个新的会话ID).

如果用户在多个标签页或窗口中打开它,我希望该网站正常工作.即,一旦在一个选项卡中登录,在另一个选项卡中打开仅限成员的URL就可以在没有登录的情况下工作.(并且,在一个选项卡中注销会从所有选项卡中注销.)我认为如果不将最新的sessionID存储在一个选项中,就无法执行此操作.曲奇饼.这样,最新的sessionID可以在所有选项卡中"共享".

但是,我开始阅读有关cookie和一些安全威胁的内容.我不知道每次请求都会发送cookie.我不需要将我的cookie发送到服务器.sessionID被添加到xhr请求的标头中 - 不作为cookie读取.所以我想知道是否有办法禁止发送此cookie.我唯一的目的是允许同一浏览器中的多个选项卡/窗口共享同一个会话.

我正在读取cookiepath参数.显然,这可以用来限制cookie何时被发送到服务器?如果我将路径设置为永远不会被使用的东西怎么办?这会阻止cookie自动发送出去吗?我只想从JavaScript访问它.

同事已经在这个应用程序的服务器端提供了很多安全措施,我不会在这里讨论.所以这个问题只是关于我能够和应该采取哪些客户端预防措施,特别是使用cookie,以获得最佳安全性.如果有更好的方法允许仅限会员的网站正常工作,同时打开多个标签,我会全力以赴.

security cookies session-cookies

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

QWebEngineView在load()或page()方法崩溃

我正在努力将Qt 5.5,QWebView项目移植到Qt 5.6(beta),QWebEngine.我在这里看过移植指南.我的代码看起来像这样:

.h文件定义_view如下:

QWebEngineView* _view;
Run Code Online (Sandbox Code Playgroud)

并且.cpp构造函数(类继承自QWidget)具有:

QVBoxLayout* vbox = new QVBoxLayout(this);
_view = new QWebEngineView(this);
    connect(_view, SIGNAL(loadFinished(bool)), this, SLOT(loadPageFinished(bool)));
QString webDir = getReportBasePath() + no_tr("/index.html#") + startingPage;
//  QWebEnginePage *page = _view->page();   // <-- CRASH!!
_view->load( QUrl("file:///" + webDir ) );  // <-- CRASH!!
_view->show();
vbox->addWidget(_view);
Run Code Online (Sandbox Code Playgroud)

在执行page()或load()方法时,整个事情崩溃了:

Unhandled exception at 0x67019C66 (Qt5Cored.dll) in qxs.exe: 0xC0000005: 
Access violation reading location 0x00000000.
Run Code Online (Sandbox Code Playgroud)

我已经验证了_view指针不是null.

如果您查看文档,他们在这里有一个示例,它几乎与我上面的代码完全相同.我也尝试将load()调用替换为与他们相同:

view->load(QUrl("http://qt-project.org/"));
Run Code Online (Sandbox Code Playgroud)

它仍然崩溃.什么可能导致这些崩溃的想法?

我是否需要首先创建QWebEnginePage并在QWebEngineView上创建setPage()?(我假设没有...)它是否与我正在使用的Qt二进制文件(预先为Windows 32位MSVC 2013构建)有关?

堆栈跟踪的相关部分:

    Qt5WebEngineWidgetsd.dll!QWebEnginePagePrivate::QWebEnginePagePrivate(QWebEngineProfile * _profile) Line 95 …
Run Code Online (Sandbox Code Playgroud)

qt qtwebengine qt5.6

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

Windows 上的 stdlib.h 函数应包含哪些库?

我来自 Mac 世界,对 Windows 开发还很陌生。非常简单的问题:我需要在 Visual Studio 2010 中包含哪些库才能访问一些基本函数,例如 strtof() 或 snprintf()?获取这些链接器错误... #including <stdlib.h>、、<ctype.h><string.h>

c windows c-standard-library

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

当字段为空时,为UISearchBar启用"搜索"按钮?(IOS 7)

在iOS 7中,当用户以前在UISearchBar中清除文本时,蓝色的"搜索"按钮将被禁用.有没有办法改变它,所以它总是启用?我希望用户能够在没有文本时点击"搜索",以显示列表中的所有项目,而不是按搜索词对其进行过滤.(当前,当用户尝试清除以前的搜索词时,蓝色的"搜索"按钮将被禁用.)

我可以在我的委托的searchBarTextDidEndEditing回调中触发一个新搜索,这样Dismiss键盘按钮会生成一个包含所有结果的刷新列表...但理想情况下,即使字段中没有文本,我也希望蓝色搜索按钮可用.这可能吗?

uisearchbar ios ios7

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

无论什么,SHGetFolderPath都会返回"C"?

我对Windows开发相当新(在Mac方面经验丰富),并且我尝试使用SHGetFolderPath(因为它与Windows XP兼容)来获取当前用户的app数据文件夹的路径.然而,无论我传递的是什么旗帜,我每次都会得到一个"C"的输出路径.我试过了两个:

CSIDL_APPDATA

CSIDL_LOCAL_APPDATA

有和没有CSIDL_FLAG_CREATE标志.每次都有相同的结果:"C".我在这做错了什么?

#include <windows.h> 
#include <shlobj.h>     // SHGetFolderPath
#include <stdio.h>
#include <stdlib.h>

//#pragma comment(lib, "shell32.lib") 

int main() 
{  
    CHAR path[MAX_PATH]; 
    HRESULT result = SHGetFolderPath(NULL, CSIDL_APPDATA | CSIDL_FLAG_CREATE, NULL, SHGFP_TYPE_CURRENT, path); 

    if (result != S_OK) 
        printf("Error: %d\n", result); 
    else 
        printf("Path: %s\n" , path); 

    printf( "String length: %d\n", strlen(path) );

    return 0; 
} 
Run Code Online (Sandbox Code Playgroud)

SHGetFolderPath的文档:http://msdn.microsoft.com/en-us/library/windows/desktop/bb762181(v = vs.85) .aspx

c windows directory

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

TypeScript 没有捕获未定义的变量?

我试图更好地理解 TypeScript。我发现如果我写这样的错误:

function doStuff() {
    if (physician.email == "george@gmail.com")
    {
         var physician = {email: "bob@gmail.com", name: "Dr. Bob"};
         /* .... */
    } }
Run Code Online (Sandbox Code Playgroud)

TypeScript 不会发现在我们尝试使用其属性之一之后定义了医师对象的问题。这会导致运行时错误:

类型错误:无法读取未定义的属性“电子邮件”。

为什么 TypeScript 转译器不捕捉这样的东西?我相信使用 TypeScript 2.0。

typescript

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

如何使JavaScript代码更具防弹性?

我来自编译语言背景(C/C++/Objective-C),目前正在用JavaScript编写一个完整的应用程序.(实际上是TypeScript,但我的问题对两者都是一样的.)

我遇到的问题是,如果发生单个错误,整个执行流程将停止.例如,如果我有:

myFunction()
{
    doSomethingA();
    doSomethingB();
    doSomethingC();
}
Run Code Online (Sandbox Code Playgroud)

那么如果doSomethingA()有这样的东西:

var myValue = window.myData.myValue;
Run Code Online (Sandbox Code Playgroud)

但是当时"窗口"上不存在"myData",则所有代码STOPS EXECUTING ... doSomethingB()和doSomethingC()都不会执行,并且会记录控制台错误.对于简单的网页来说这可能没问题,但是我正在创建一个应用程序,它不需要莫名其妙地"停止工作".

当然,我可以使用try/catch来"了解"这个错误,但是STILL并没有解决我的问题:我想以doSomethingB()和doSomethingC()继续执行的方式编写代码,即使出现问题.但是,这对我的代码来说是一个巨大的过度简化.想象一下,这些功能有很多.用每个独立的try/catch块包围它们是不切实际的.即使我这样做,即使第一部分中的某些内容失败,我也需要继续执行给定函数的其余部分.

当然,我可以通过使用以下方式"保护"我的变量:

if ( typeof window.myData != "undefined")
Run Code Online (Sandbox Code Playgroud)

要么

if (window.myData.hasOwnProperty("myValue")
Run Code Online (Sandbox Code Playgroud)

但是如果要检查多个级别,例如访问时,则会变得非常混乱:

var myValue = window.myData.something.anotherLevel.somethingElse.value;
Run Code Online (Sandbox Code Playgroud)

现在我必须检查myData,something,anotherLevel和somethingElse是否全部有效,然后才能"安全地"访问此值.这导致非常难看的代码.

有没有更好的方法让我的代码更"防弹"?如果属性意外丢失,我需要代码在问题陈述后继续执行.如果没有"保护"每一个访问数据甚至很少有未定义机会的语句,这是否可能?

javascript web typescript

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