标签: xauth

访问令牌持久性最佳实践(iOS)

是否应该加密Twitter和Facebook等服务的访问令牌?特别是,应该将令牌存储在设备的Keychain vs. UserDefaults中吗?如果用户的设备被盗/被占用,可能会出现哪些安全问题

这是我到目前为止所提出的.

钥匙串的优点: 加密

缺点:用户删除应用时无法清理

UserDefaults的优点: 保留在应用程序内部.

缺点:没有加密.

security iphone social xauth ios

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

如何在JavaScript中的HTTP标头中传递X-Auth-Token

我有一个使用基于令牌的身份验证的网站.首先,发送用户名和密码以记录用户并接收令牌.对于后续调用,我需要X-Auth-Token在HTTP头中包含令牌.

我想知道如何做到这一点,在vanilla JavaScript或使用jQuery.你能给我一个代码示例吗?

javascript jquery token xauth

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

BasicAuth,OAuth和XAuth有什么区别?

最近我听说Twitter将关闭Twitter API上的基本身份验证,然后他们转向OAuth.

所以我想知道BasicAuth,OAuth和XAuth之间有什么区别?

每个Auth的优点和缺点是什么?

authentication oauth xauth

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

原生Android VPN以编程方式

存在这个问题的变体,但我似乎无法理解某些东西.

如果您在ICS/4.0中的功能结束时阅读,请注意

企业还可以利用平台内置的标准VPN客户端来访问L2TP和IPSec协议.

我的假设是,因为它不在"开发人员"部分下,所以我们没有获得除VpnService API之外的开发人员API访问.我看过ToyVPN,这只是无用的,因为我需要一个真正的IPSec IKEv1 XAuth连接来连接到企业防火墙.

我找到了几个需要root和VPNCilla的解决方案,虽然我没有能够成功建立连接但显然没有.

这是否意味着除非我们在Java中实现协议或使用NDK(如StrongSwan与IKEv2一样),否则实际上无法以编程方式为IPSec IKEv1 XAuth网关/防火墙创建配置文件或连接到IPSec IKEv1 XAuth网关/防火墙?

vpn enterprise android ipsec xauth

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

使用python-oauth2的xauth

我正在尝试使用python-oauth2为instapaper实现xauth.我能找到oauth的样本,但我没有找到任何xauth.有人可以共享样本或api文档吗?

python sample xauth

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

Instapaper API和Javascript XAuth

我今天大部分时间都在尝试实施Instapaper的XAuth API.我还没有得到一个oauth令牌.

我有什么想法我做错了吗?

我正在使用node.js和oauth模块.我的理解是我需要将用户名,密码,amd模式作为额外参数传递.而oauth模块应该处理所有的oauth参数.但事实并非如此.这是代码:

var OAuth = require('oauth').OAuth;

var oauth = new OAuth(
  '',
  'https://www.instapaper.com/api/1/oauth/access_token',
  'CONSUMER_KEY',
  'CONSUMER_SECRET',
  '1.0',
  null,
  'HMAC-SHA1',
  null
);

var extra = {
  'x_auth_username': 'USERNAME',
  'x_auth_password': 'PASSWORD',
  'x_auth_mode': 'client_auth'
};
var hello = oauth._prepareParameters('', '', 'POST', 'https://www.instapaper.com/api/1/oauth/access_token', null);
var url = 'https://www.instapaper.com/api/1/oauth/access_token';
var f = true;
for (var i in hello) {
  if (f) {
    url += '?';
    f = false;
  } else {
    url += '&';
  }
  url += hello[i][0] + '=' + hello[i][1];
}
console.log(url+'&x_auth_mode=client_auth&x_auth_username=&x_auth_password=') …
Run Code Online (Sandbox Code Playgroud)

oauth node.js xauth instapaper

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

使用twitter4j的Android Twitter xAuth示例

Android:我正在为android共享尝试以下xAuth示例.

Android的Twitter分享的xAuth身份验证?

System.setProperty("twitter4j.oauth.consumerKey", "your token");
System.setProperty("twitter4j.oauth.consumerSecret", "your token secret");

Twitter twitter = new TwitterFactory().getInstance(login, password);

AccessToken accessToken = twitter.getOAuthAccessToken();
//Then you must save your Token and Token secret from AccesToken

if (mAccessToken != null) {
    if (mAccessToken.getToken() != null && mAccessToken.getTokenSecret() != null) {
        saveAccessToken(mAccessToken.getToken(), mAccessToken.getTokenSecret());
    }
}
Run Code Online (Sandbox Code Playgroud)

我有IllegalStateException

Exception Msg: java.lang.IllegalStateException: OAuth consumer key/secret combination not supplied

在以下行

AccessToken accessToken = twitter.getOAuthAccessToken();
Run Code Online (Sandbox Code Playgroud)

我做了一些更改,如下所示

Twitter twitter = new TwitterFactory().getInstance("login", "pass");
            twitter.setOAuthConsumer(getString(R.string.twtAPIKey), getString(R.string.twtSecret));
            AccessToken mAccessToken = twitter.getOAuthAccessToken();
Run Code Online (Sandbox Code Playgroud)

我又得到了例外 Exception Msg: java.lang.IllegalStateException: …

twitter android xauth twitter4j

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

OAuth在手机上使用代理服务器太麻烦了吗?

我花了最近几天才开始运行OAuth.不是在Android上,而是在我的网络服务器上,它将充当OAuth保护服务的代理.我正准备实施我的Android客户端,我的头脑仍然在讨论安全性和实施问题.

当客户端只是一个Web浏览器时,OAuth就足够混乱了.您有以下一系列步骤:

  • (客户端Web浏览器)向我的代理服务器发出请求
  • (代理服务器)从OAuth提供程序请求未经授权的令牌(例如 - Web服务API)
  • (代理服务器)要求OAuth提供商让用户授权令牌.将Web浏览器重定向到OAuth提供程序的"授权"URI
  • (OAuth提供程序)在用户完成授权后,将浏览器重定向到您的回调URI
  • (代理服务器::回调URI)访问令牌的Exchange授权令牌,然后将其存储以供将来调用
  • 对OAuth提供程序进行API调用,并将响应文档返回给客户端Web浏览器

现在这已经足够了.但是当使用与移动应用程序相同的机制作为客户端时,它会更加复杂.问题当然是你必须做一些杂技,以便在进行OAuth舞蹈时将浏览器会话注入到移动应用程序的代码流中.这意味着你必须进一步复杂化OAuth舞蹈如下(我在这个例子中使用Android应用程序来使事情具体化):

  • (移动Web应用程序::本机代码)使用Java/HTTP从代理服务器发出请求
  • (代理服务器)从OAuth提供程序请求未经授权的令牌(例如 - Web服务API)
  • (代理服务器)将响应文档返回到移动Web应用程序,该应用程序包含OAuth提供程序的用户授权的重定向URI,最好是模糊化以隐藏使用者密钥和其他细节以阻止"无线"窥探.
  • (移动Web应用程序)使用已安装intent过滤器的授权URL启动Web浏览器活动.但是,存储然后使用特殊的"假冒"URI替换代理服务器的指定回调URI,以便通过意图过滤器轻松识别URI(请参阅以下步骤)
  • (OAuth提供商)用户完成授权后,将浏览器重定向到您的"假冒"回调URI.
  • (移动网络应用程序)Intent过滤器检测"假"回调URI并使用该信号重新获得控制权.重建代理服务器的回调URI并使用Java/HTTP执行请求.
  • (代理服务器::回调URI)访问令牌的Exchange授权令牌,然后像以前一样将其存储以供将来调用
  • 对OAuth提供程序进行API调用,并将响应文档返回到移动Web应用程序

你可以看到这很可怕.如果有一个更简单的方法,那么我渴望听到它.据我所知,只有两个其他选择,每个都有自己的重大问题.

1)忘记代理服务器并直接从移动Web应用程序执行所有操作.这里最大的安全漏洞就是你必须在你的OAuth消费者密钥中"烘焙"并秘密进入你的应用程序.如果攻击者对您的代码进行反编译并搜索这些字符串,对于具有逆向工程经验的人来说,这是一个相当简单的操作,它们会对您的应用程序和用户造成严重破坏.

2)切换到XAuth,用户在那里向您提供他们的登录名和密码,并且您"同意"不存储它们并直接与XAuth服务器交换访问令牌.第一个问题是获得用户信任以提供该信息,创建OAuth以解决问题,当然还有那些不履行其放弃登录详细信息的承诺的人呢?更糟糕的是,XAuth服务器必须支持XAuth并提供HTTPS(SSL)连接,而且我已经看到大量不支持的Web API.当然,SSL连接是必要的,因为在没有它的情况下,您在发出XAuth请求时会以纯文本形式通过网络发送用户的登录名和密码.

http://blog.zyber17.com/post/1283741364/why-xauth-is-a-really-dumb-idea

仅供参考,虽然它不使用代理服务器,但以下示例说明了我将上述用于将浏览器会话注入您的移动应用OAuth交互并拦截回调URI的技术:

http://blog.doityourselfandroid.com/2010/11/10/oauth-flow-in-android-app/

所以你看它看起来很丑陋,我甚至没有为用户创建和管理你自己的用户ID而烦恼,这样你就可以正确查找存储在代理Web服务器上的访问权限(包括一个PIN或访问代码的混乱,供用户管理).

有趣的注意事项:在对Android网络浏览器会话安全性进行一些研究时,我很高兴地发现您不能访问当前的网页HTML.如果您可以访问它,那么恶意的Android编码器可以轻松地嗅出用户的登录名和密码,从而完全破坏OAuth的目的和意图.我很沮丧地发现可能有办法通过CacheManager对象获取HTML.奇怪的是,该对象现在已被弃用,并根据Android文档计划删除,因此希望这意味着Google发现了(潜在的)安全漏洞并正在采取措施在即将发布的版本中将其删除:

http://developer.android.com/reference/android/webkit/CacheManager.html

最后,我想听听那些在创建OAuth应用程序时遇到这些相同问题的人的想法.

- roschler

ssl mobile android oauth xauth

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

通过ssh -X作为特定用户登录时,在哪里更改.Xauthority文件的默认位置

我需要更改.Xauthority一组用户文件位置$HOME/tmp/.Xauthority而不是默认值$HOME/.Xauthority.

我已经尝试过从以下几个方面赶上来的东西:

我这样设置环境变量几个/etc/.profile,.profile,.bashrc...等具有以下内容:XAUTHORITY=$HOME/tmp/.Xauthority

结果如下:

对sshx group(ssh -X server)用户的任何登录尝试都会导致锁定超时$HOME/.Xauthority.这就像没有改变任何东西.有趣的是,如果我echo $XAUTHORITY显示$HOME/tmp/.Xauthority.authx正在运作,但在登录时却没有.

因此,我需要的处理必须ssh -X在建立X连接之前或同时发生.我在哪里必须更改它,以便我只能解决一组用户,因为我不希望root或没有sshX组的用户受到影响,因为他们最终没有该目录?

x11 sshd xauth

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

是否可以使用OmniAuth获取Gmail oauth或xauth令牌?

我想从GMail获取oauth或xauth令牌以与gmail-oauth一起使用.我正在考虑使用OmniAuth,但它似乎还不支持GMail,这意味着有了OmniAuth库存是不可能的.那是对的吗?我错过了什么吗?

ruby gmail oauth xauth omniauth

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