如何创建新的清理会话并使Flask中的当前会话无效?
我使用make_null_session()或open_session()?
我在ASP.Net网站上使用Yahoo Uploader,Yahoo UI Library的一部分,允许用户上传文件.对于那些不熟悉的人,上传者通过使用Flash小程序来帮助我更好地控制FileOpen对话框.我可以为文件类型指定一个过滤器,允许选择多个文件等.这很好,但它有以下记录的限制:
由于已知的Flash错误,在Windows中的Firefox中运行的上传器不会通过上传发送正确的cookie; 它不是发送Firefox cookie,而是为相应的域发送Internet Explorer的cookie.作为解决方法,我们建议使用无cookie上传方法或将document.cookie附加到上传请求.
因此,如果用户使用的是Firefox,我不能依赖Cookie来保存他们上传文件时的会话.我需要他们的会议,因为我需要知道他们是谁!作为一种解决方法,我正在使用Application对象:
Guid UploadID = Guid.NewGuid();
Application.Add(Guid.ToString(), User);
Run Code Online (Sandbox Code Playgroud)
因此,我正在创建一个唯一的ID,并将其用作将Page.User对象存储在Application范围内的键.上传文件时,我将该ID作为POST中的变量包含在内.然后,在接受文件上传的处理程序中,我抓住User对象:
IPrincipal User = (IPrincipal)Application[Request.Form["uploadid"]];
Run Code Online (Sandbox Code Playgroud)
这实际上有效,但它有两个明显的缺点:
如果IIS,应用程序池,甚至只是应用程序在用户访问上载页面和实际上载文件之间重新启动,它们的"uploadid"将从应用程序范围中删除,并且上载失败,因为我无法对它们进行身份验证.
如果我扩展到Web场(可能甚至是Web园)场景,这将完全破坏.我可能不会担心,除了我计划将来扩展这个应用程序.
有没有人有更好的方法?有没有办法让我在POST变量中传递实际的ASP.Net会话ID,然后在另一端使用该ID来检索会话?
我知道我可以通过会话ID Session.SessionID,我知道如何使用YUI将其发布到下一页.我不知道如何使用它SessionID从状态服务器获取会话.
是的,我正在使用状态服务器来存储会话,因此它们会持续执行应用程序/ IIS重新启动,并且可以在Web场方案中运行.
我们在trigger.io的支付模块中遇到了一个奇怪的问题.该流程与ios支付完美配合,但在Android中,一些应用程序内支付回调在同一秒内被调用两次.收据签名不同,但orderid,notificationid,purchasetoken和developerPayload都保持不变.当我们尝试验证收据时,结果是真实和正确的.但是当我们查看财务报告时,我们只看到一个付款而不是两个(因为它可能只是一个付款,但为什么不同的签名?).
为什么trigger.io调用两次回调导致产品被买两次?为什么android会为一次付款返回2个不同且可确认的收据?这是ororid方面或trigger.io方面的错误,因为我无法使用javascipt调用回调?或者这是一个已知的黑客企图?
我们还遇到了一个根本没有调用回调的情况,而信用卡被成功收费.这是一个错误还是有这种情况的解决方法?
这是我开始购买的代码:
if(forge.is.android())
forge.payments.purchaseProduct("someproductname", paymentSuccess, paymentError);
Run Code Online (Sandbox Code Playgroud)
这是回调函数:
function paymentCallback(data, confirm){
forge.request.ajax({
url: "someurl.php",
dataType: "json",
data:"function=logPayment&action=PaymentCallbackStart",
success: function (data) {
hideLoader();
},
error: function (error) {
hideLoader();
}
});
var productId = data.productId;
var orderId = data.orderId;
var signed_data;
if(forge.is.android())
{
var state = data.purchaseState;
var receipt = encodeURIComponent(data.receipt.signature);
signed_data = encodeURIComponent(data.receipt.data);
}
else if(forge.is.ios())
{
var state = data.PurchaseState;
var receipt = data.receipt.data;
}
forge.request.ajax({
url: "someurl.php",
dataType: "json",
data:"function=logPayment&data=" + encodeURIComponent("birthday=" + gbirthday + "&birthhour=" + …Run Code Online (Sandbox Code Playgroud) 是否可以在ac#asp.net站点的查询字符串中安全地包含密码.
我知道的一些假设和事情 -
我知道该网站可能容易受到跨站点脚本和重放攻击.我该如何减轻这些?
鉴于上述情况,我应该如何在查询字符串中包含密码?
请不要问我'为什么',我知道这不是一个好主意,但它是客户想要的.
asp.net ×2
c# ×2
android ×1
encryption ×1
flask ×1
passwords ×1
python ×1
query-string ×1
session ×1
trigger.io ×1
yui ×1