
̂̂Ă܂B

cgigꍇ̃p[~bVtLĂ܂Bcgi700œȂꍇ701>705>755
ŎĂBł700or701ŁB

ranking.cgi, test.cgi ͕R[h̖邽߁AAXL[݂̂ŏĂ܂B

Ot@ĆA644ɂȂswf猩邱Ƃł܂B

    ranking/
        index.html          644     index
        ranking.cgi         700     LOcgi{
        md5.pl              644     perlmd5ۂɎgp
        log.dat             644     Ot@C
        rankingcheck.swf    644     ranking.cgi̓𗝉邽߂Flash

    test/
        index.html          644     index
        test.cgi            700     perlFlashŐhash𐶐ł邩
                                    checkcgi
        md5.pl              644     ranking/ ɂ̂Ɠ
        test.swf            644     ꂩ test.cgi ĂяoĎg

    source_sample/
        http://www.nurs.or.jp/~b3/scripts/md5as/
        LURLŎgpTv yсA
        rankingcheck.swf  test.swf  fla
        md5.as

--------------------------------------------------------------------------------------

{Iȓtest

    ranking.cgi gOɁAsł test/ ꎮݒuāAindex.htmlɃANZXA
    Kȕ͂swfcgi/perlhashv邩mFĂB

    ҂͑SĂ̊test킯ł͂Ȃ̂ŁAOSFlashPlayer̃o[W
    Ă͐(perlƓ)hash𐶐łȂ\킯ł͂܂BA
    łꍇAMD5g ranking.cgi ̋͂ł܂B(MD5gȂrank
    ing.cgigp邱Ƃ͏o܂)

    R[h̖肪΁ApňvĂASpł͈vȂ\l
    ܂BSpgpĂssȂȂ΁A܂vȂƂ͍lȂ
    ł傤B

    ƂĂ͉LURL̂悤ɂȂ܂B
    http://www.nurs.or.jp/~b3/scripts/md5as/test/
    ҂̊(FlashPlayer6 or 7)ł͐hashv邱ƂmFĂ܂B

--------------------------------------------------------------------------------------

ranking.cgi

    {Iȓ
        1. swfscorenamẽp[^[POST or GETŎ󂯎
        2. K{p[^[check, Ȃꍇ̓G[
        3. hash or passcheck, vȂꍇ͔F؃G[
        4. Ot@CJēǂݍ݁AVf[^tsort
        5. AVf[^Nł΁Af[^ۑ
        6. Nł΁ANANOł΂̎|text/plainŕԂ

    check mode̎̓
        1. swfp[^[POST or GETŎ󂯎
        3. hash̐ycheck͂邪AvȂꍇłG[ɂ͂ȂȂ
        4. Ot@CJēǂݍ݁AVf[^tsort
        6. Nł΁ANANOł΂̎|text/plainŕԂ
        5. check݂̂Ńf[^̕ۑ͂Ȃ

check modeƂ
    cgiPOSTہAmode=checkƂ邱ƂŁAcgicheck modeœ삳܂B
    check modeł͉ʂɃNCĂ邩̔ĂԂ܂AL^̍XV
    s܂B

    Ⴆ΁ANCĂꍇl[͂ꍇAʂɂă[U[
    LOւ̓o^CӂɑI΂ꍇɕKvȋ@\łB


Flash̏
    source_sample/ ɂArankingcheck.flaQlɂĉBłڂR
    gĂ܂Brankingcheck.flał́AcgiԂchecǩʓ𗘗p
    ߂sendAndLoadgđMsĂ܂AԂlKvƂȂꍇsen
    dloadVariables,getURLgƂ\łB

    Mɂ͂łPOSTgpĂBGETg_͂܂肠܂B

    LOf[^̓ǂݍ݂́AʏX̕ϐɂ܂B̂܂܃eLXg
    tB[hɓꍇ͓ɏ͕Kv܂B
    http://www.macromedia.com/jp/support/flash/ts/documents/fl0247.html
    LURLQlɂƗǂƎv܂B

    rankingcheck.flał͂ĂЂ˂ꂽ@ƂĂ܂BX̕ϐzɍč\
    Ă܂B̑f[^AIȕ\sꍇ̗͂lȕ@KvȂƂ
    łB

CGI̐ݒ

    $PASS
        pX[h
        ꂪłꍇAMD5gpAȂɊւ炸A؂̔F؂s܂B

    $DATAFILE
        f[^t@C̃pXݒ

    $ORDER
        f[^̃\[gKłBf[^̃\[gɂ́A@PARAMSŐݒ肳Ăp[
        ^[̂A擪̂̂g܂B
         -1 : \[gȂ - Vpost͏ɖɉ܂
          0 : \[gȂ - Vpost͏ɐ擪ɑ}܂
          1 :  >  - 
          2 :  >  - ~

    $RECORDS
        L^f[^̍ő吔

    @PARAMS
        gpp[^[̖OXy[Xŋ؂ėLĂB
        p[^[Rɒǉ邱Ƃł܂B
        ɖp[^[͂Ƃswf瓊Ă܂B
        ܂AŐ擪ɂp[^[̓\[gɎgp܂B

    @REQPARAMS
        K{p[^[ݒ
        ɗLĂp[^[ꍇAcgi'parameter(s) are not enough'
        ƂG[Ԃ܂Bcheck modêƂ́A͖܂B

    @RTNPARAMS = qw{ rank message auth swfhash cgihash };
        cgiswfɕԂϐ̖Oݒ肵܂BʏςKv͂܂񂪁A̖
        @ɍ킹ꍇ͕ςɉzƂ͂Ȃł傤B

        ς͖̂OłāA͕ς܂B

            1Ԗڂ̕ϐ     NɊւԂԂ܂
                            -1 :        炩̃G[ꍇ
                             0 :        NOꍇ
                             0ȏ :    NCĂꍇB
                                        ͂̂܂܃N܂B

            2 V            cgĩbZ[WAG[̏ڍד
            3 V            F؂ǂ
            4 V            swf瑗ꂽhash
            5 V            cgiŐĂ݂ƍphash

        ̂Aʏgp̂ 1Ԗڂ̕ϐ(rank), 2Ԗڂ̕ϐ(message) Ǝv
        B4, 5͓mFpŎۂɕKvƂ邱Ƃ͂܂܂B

        F؂sꍇA܂hashvȂ(MD5gp[hȂpassȂ
        ꍇ) 'bad password/hash'  message ƂĕԂ܂AƂ͕ʂ auth ɔF
        ؂̐ۂ^UlŕԂ܂B

        check modeœ삳ꍇAhashpass̊mF͍s܂AF؂̌ʂs
        ƂĂG[ɂ͂Ȃ炸ɏrankԂ܂B́Acheck modełha
        sh̐swfł̂͂킸킵ꍇlĂ̂ƂłB΁Ac
        heck moderank𓾂Ȃ΁AhashpasscgiPOSTKv͂܂B

        Acheck modeŔF؂̊mFŝł΁Aauth̐^UcheckΗǂ
        ƂɂȂ܂B$PASS̏ꍇA؂̔F؂͍s܂񂪁Ȁꍇauth͏
        ɐ^ɂȂ܂B

    $USEMD5
        MD5gǂ 1 - g : 0 - gȂ

        gꍇAmd5.plKvłBF؂́AMD5ŐhashmvĂ邩ōs
        ܂BASł@hash𐶐ĂpassƂcgiPOSTKv
        ܂Bڂrankingcheck.flaQlĂB

        hash@PARAMSŐ擪ɐݒ肳ꂽϐƁApX[h琶ĂB
        sendVars.pass = MD5( score.toString() + pass.toString() );
        ƂɂȂ܂B

        MD5gȂꍇ
        sendVars.pass = pass;
        ̂悤ɐpasŝ܂ܓ邱ƂɂȂ܂B

    @MESSAGES
        G[bZ[W`Ă܂B͕͂̕ςč\܂񂪁A̍
        ͕ςȂŉBperl𗝉ĂăG[R[hς̂łΕʂ
        EEE
        bZ[WɑSpgswfŐɕ\ł܂B

