Symfoware

Symfowareについての考察blog

mod_access_tokenのAccessTokenSecretとAccessTokenAccessKey

mod_access_tokenを試してみました。
apache2 mod_access_tokenをPythonから使用する

ふと、AccessTokenSecretやAccessTokenAccessKeyって
何を指定すればいいんだろ?と思い試してみました。




32文字の文字列



適当に32文字の文字列を指定してみます。


# vi /etc/apache2/conf.d/access_token.conf



設定内容。


<Location /hoge>
    AccessTokenCheck On
    AccessTokenSecret 12345678901234567890123456789012
    AccessTokenAccessKey 09876543210987654321098765432109
</Location>




これでアクセスOKでした。


  1. # -*- coding:utf-8 -*-
  2. import time
  3. import hmac
  4. import hashlib
  5. import base64
  6. import urllib
  7. import urllib2
  8. uri = '/hoge/test.html'
  9. accesskey = '09876543210987654321098765432109'
  10. secret = '12345678901234567890123456789012'
  11. expires = int(time.time()) + 10 # 10秒許可
  12. plaintext = 'GET' + uri + str(expires) + accesskey
  13. signature = base64.b64encode(hmac.new(secret, plaintext, hashlib.sha1).digest())
  14. signature = signature.replace('=', '')
  15. signature = urllib.quote(signature)
  16. token_param = 'AccessKey=%s&Expires=%s&Signature=%s' % (accesskey, expires, signature)
  17. f = urllib2.urlopen('http://192.168.1.110' + uri + '?' + token_param)
  18. print f.read()







1文字




<Location /hoge>
    AccessTokenCheck On
    AccessTokenSecret S
    AccessTokenAccessKey K
</Location>




こちらも問題なし。


  1. # -*- coding:utf-8 -*-
  2. import time
  3. import hmac
  4. import hashlib
  5. import base64
  6. import urllib
  7. import urllib2
  8. uri = '/hoge/test.html'
  9. accesskey = 'K'
  10. secret = 'S'
  11. expires = int(time.time()) + 10 # 10秒許可
  12. plaintext = 'GET' + uri + str(expires) + accesskey
  13. signature = base64.b64encode(hmac.new(secret, plaintext, hashlib.sha1).digest())
  14. signature = signature.replace('=', '')
  15. signature = urllib.quote(signature)
  16. token_param = 'AccessKey=%s&Expires=%s&Signature=%s' % (accesskey, expires, signature)
  17. f = urllib2.urlopen('http://192.168.1.110' + uri + '?' + token_param)
  18. print f.read()





要するに、推測されにくい任意の文字列を設定すればいいんですね。
関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2014/11/30(日) 18:47:43|
  2. Python
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Debian 7 + nginx 1.6.2 + lua-nginx-moduleの環境構築 | ホーム | apache2 mod_access_tokenをPythonから使用する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1560-ff11802a
この記事にトラックバックする(FC2ブログユーザー)