TOWN
セキュリティ対策
「銀行ローン」の不正防止
「銀行ローン」の不正防止方法を紹介します。
改造場所
■「basic.cgi」
改造内容
■「basic.cgi」をエディタで開き、下記部分を探して下さい。 (※表示の都合上改行が加えてあります。)
#######ローン sub loan { #借り入れ処理の場合 if ($in{'hensai_kaisuu'}){ if ($loan_kaisuu > 0){ &error("ローンを完済するまで新しい融資はできません。");} my ($nitigaku,$nitigaku_kaisuu) = split(/×/,$in{'hensai_kaisuu'}); ★★★ $loan_nitigaku = "$nitigaku"; $loan_kaisuu = "$nitigaku_kaisuu"; $bank += $in{'yuusi_kanougaku'}; &kityou_syori("住宅ローン","",$in{'yuusi_kanougaku'},$bank,"普"); #ログ更新 &temp_routin; &log_kousin($my_log_file,$k_temp); &message("$in{'yuusi_kanougaku'}円を普通預金口座に振り込みました。","login_view"); #一括返済の場合 }elsif ($in{'command'} eq "ikkatu_hensai"){ $ikkatu_hensai_gaku = $loan_nitigaku * $loan_kaisuu; if ($bank < $ikkatu_hensai_gaku){ &error("普通口座に十\分な預金がありません");} $bank -= $ikkatu_hensai_gaku; $loan_nitigaku = 0; $loan_kaisuu = 0; &kityou_syori("住宅ローン一括返済","$ikkatu_hensai_gaku","",$bank,"普"); #ログ更新 &temp_routin; &log_kousin($my_log_file,$k_temp); &message("住宅ローンの一括返済をしました。","login_view"); #査定処理画面出力 }else{ open(SP,"./dat_dir/job.dat") || &error("Open Error : ./dat_dir/job.dat"); $top_koumoku = <SP>; @job_hairetu = <SP>; close(SP); foreach (@job_hairetu) { &job_sprit($_); if($job_name eq "$job"){ last; } } $yuusi_kanougaku = int(($job_kyuuyo * ($job_keiken/50) * ($job_kaisuu/50)) + ($bank * 2)+($super_teiki * 2.5)); $yuusi_kanougaku -= $yuusi_kanougaku % 10000; $kai12 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.05))/12); $kai24 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.06))/24); $kai36 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.07))/36); $kai48 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.08))/48); $kai60 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.09))/60); $kai72 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.1))/72); $kai84 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.11))/84); $kai96 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.12))/96); $kai108 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.13))/108); $kai120 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.14))/120); ★★★ &header(ginkou_style); print <<"EOM"; <table width="400" border="0" cellspacing="0" cellpadding="20" align=center class=yosumi> <tr> <td bgcolor=#ffffff> <div class=dai align=center>ご 査 定</div><hr size=1><br> <div class=job_messe>$name様の当銀行へのお預け入れ額や<br> ご職業、経験、勤続期間などから査定いたしまして、<br> ご融資できます金額は以下の通りとなります。 <br><br><div class=dai>$yuusi_kanougaku円</div> <form method="POST" action="$this_script"> <input type=hidden name=mode value="loan"> <input type=hidden name=name value="$in{'name'}"> <input type=hidden name=pass value="$in{'pass'}"> <input type=hidden name=k_id value="$in{'k_id'}"> <input type=hidden name=town_no value=$in{'town_no'}> <input type=hidden name=yuusi_kanougaku value="$yuusi_kanougaku"> ご返済は毎日(ログイン時)、返済回数に応じて5〜14%の利子がついた額が普通預金口座より引き落とされます。<br> また、完済するまでは次にお金を借りることはできません。 <select name="hensai_kaisuu"> <option value="$kai12×12">12回払い(日額$kai12円)</option> <option value="$kai24×24">24回払い(日額$kai24円)</option> <option value="$kai36×36">36回払い(日額$kai36円)</option> <option value="$kai48×48">48回払い(日額$kai48円)</option> <option value="$kai60×60">60回払い(日額$kai60円)</option> <option value="$kai72×72">72回払い(日額$kai72円)</option> <option value="$kai84×84">84回払い(日額$kai84円)</option> <option value="$kai96×96">96回払い(日額$kai96円)</option> <option value="$kai108×108">108回払い(日額$kai108円)</option> <option value="$kai120×120">120回払い(日額$kai120円)</option> </select> <input type=submit value="借りる"> </form> </td></tr> </table> <div align="center"><a href=\"javascript:history.back()\"> [前の画面に戻る] </a></div> </body></html> EOM exit; } #else(借り入れ処理で無い場合)の閉じ }
■上記「★★★」に下記赤文字部分(二箇所)を追加して下さい。
#######ローン sub loan { #借り入れ処理の場合 if ($in{'hensai_kaisuu'}){ if ($loan_kaisuu > 0){ &error("ローンを完済するまで新しい融資はできません。");} my ($nitigaku,$nitigaku_kaisuu) = split(/×/,$in{'hensai_kaisuu'}); #※不正対策 ここから $kojin_loan_file = "./member/$in{'k_id'}/kojin_loan.cgi"; open(KKF,"$kojin_loan_file")|| &error("ローン個人ファイルが開けません。"); @kojin_loan =<KKF>; close(KKF); $kl_flg = 0; foreach (@kojin_loan){ ($kl_kai,$kl_nitigaku,$kl_yusigaku) = split(/<>/,$_); if($kl_kai eq $nitigaku_kaisuu){ if($kl_nitigaku ne $nitigaku){ &error("不正な融資が行われたため、取引は中止となりました。"); } if($kl_yusigaku ne $in{'yuusi_kanougaku'}){ &error("不正な融資が行われたため、取引は中止となりました。"); } $kl_flg = 1; last; } } if(!$kl_flg){ &error("不正な融資が行われたため、取引は中止となりました。");} #※不正対策 ここまで $loan_nitigaku = "$nitigaku"; $loan_kaisuu = "$nitigaku_kaisuu"; $bank += $in{'yuusi_kanougaku'}; &kityou_syori("住宅ローン","",$in{'yuusi_kanougaku'},$bank,"普"); #ログ更新 &temp_routin; &log_kousin($my_log_file,$k_temp); &message("$in{'yuusi_kanougaku'}円を普通預金口座に振り込みました。","login_view"); #一括返済の場合 }elsif ($in{'command'} eq "ikkatu_hensai"){ $ikkatu_hensai_gaku = $loan_nitigaku * $loan_kaisuu; if ($bank < $ikkatu_hensai_gaku){ &error("普通口座に十\分な預金がありません");} $bank -= $ikkatu_hensai_gaku; $loan_nitigaku = 0; $loan_kaisuu = 0; &kityou_syori("住宅ローン一括返済","$ikkatu_hensai_gaku","",$bank,"普"); #ログ更新 &temp_routin; &log_kousin($my_log_file,$k_temp); &message("住宅ローンの一括返済をしました。","login_view"); #査定処理画面出力 }else{ open(SP,"./dat_dir/job.dat") || &error("Open Error : ./dat_dir/job.dat"); $top_koumoku = <SP>; @job_hairetu = <SP>; close(SP); foreach (@job_hairetu) { &job_sprit($_); if($job_name eq "$job"){ last; } } $yuusi_kanougaku = int(($job_kyuuyo * ($job_keiken/50) * ($job_kaisuu/50)) + ($bank * 2)+($super_teiki * 2.5)); $yuusi_kanougaku -= $yuusi_kanougaku % 10000; $kai12 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.05))/12); $kai24 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.06))/24); $kai36 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.07))/36); $kai48 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.08))/48); $kai60 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.09))/60); $kai72 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.1))/72); $kai84 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.11))/84); $kai96 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.12))/96); $kai108 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.13))/108); $kai120 = int(($yuusi_kanougaku + ($yuusi_kanougaku*0.14))/120); #※不正対策 ここから $kojin_loan_file = "./member/$in{'k_id'}/kojin_loan.cgi"; if (! -e $kojin_loan_file){ open(KKF,">$kojin_loan_file") || &error("ローン個人ファイルを作成できません。"); close(KKF); } @kojin_loan = (); $kojin_loan[0] = "12<>$kai12<>$yuusi_kanougaku<>\n"."24<>$kai24<>$yuusi_kanougaku<>\n" ."36<>$kai36<>$yuusi_kanougaku<>\n"."48<>$kai48<>$yuusi_kanougaku<>\n" ."60<>$kai60<>$yuusi_kanougaku<>\n"."72<>$kai72<>$yuusi_kanougaku<>\n" ."84<>$kai84<>$yuusi_kanougaku<>\n"."96<>$kai96<>$yuusi_kanougaku<>\n" ."108<>$kai108<>$yuusi_kanougaku<>\n"."120<>$kai120<>$yuusi_kanougaku<>\n"; open(KKF,">$kojin_loan_file")|| &error("ローン個人ファイルが開けません。"); print KKF @kojin_loan; close(KKF); #※不正対策 ここまで &header(ginkou_style); print <<"EOM"; <table width="400" border="0" cellspacing="0" cellpadding="20" align=center class=yosumi> <tr> <td bgcolor=#ffffff> <div class=dai align=center>ご 査 定</div><hr size=1><br> <div class=job_messe>$name様の当銀行へのお預け入れ額や<br> ご職業、経験、勤続期間などから査定いたしまして、<br> ご融資できます金額は以下の通りとなります。 <br><br><div class=dai>$yuusi_kanougaku円</div> <form method="POST" action="$this_script"> <input type=hidden name=mode value="loan"> <input type=hidden name=name value="$in{'name'}"> <input type=hidden name=pass value="$in{'pass'}"> <input type=hidden name=k_id value="$in{'k_id'}"> <input type=hidden name=town_no value=$in{'town_no'}> <input type=hidden name=yuusi_kanougaku value="$yuusi_kanougaku"> ご返済は毎日(ログイン時)、返済回数に応じて5〜14%の利子がついた額が普通預金口座より引き落とされます。<br> また、完済するまでは次にお金を借りることはできません。 <select name="hensai_kaisuu"> <option value="$kai12×12">12回払い(日額$kai12円)</option> <option value="$kai24×24">24回払い(日額$kai24円)</option> <option value="$kai36×36">36回払い(日額$kai36円)</option> <option value="$kai48×48">48回払い(日額$kai48円)</option> <option value="$kai60×60">60回払い(日額$kai60円)</option> <option value="$kai72×72">72回払い(日額$kai72円)</option> <option value="$kai84×84">84回払い(日額$kai84円)</option> <option value="$kai96×96">96回払い(日額$kai96円)</option> <option value="$kai108×108">108回払い(日額$kai108円)</option> <option value="$kai120×120">120回払い(日額$kai120円)</option> </select> <input type=submit value="借りる"> </form> </td></tr> </table> <div align="center"><a href=\"javascript:history.back()\"> [前の画面に戻る] </a></div> </body></html> EOM exit; } #else(借り入れ処理で無い場合)の閉じ }
「kojin_loan.cgi」ファイルを個人フォルダ内に作成し、ローン査定額を保存します。
借り入れが実行された時に「kojin_loan.cgi」ファイルに保存された内容と比較し、一致しない場合は取引を中止します。
前後の内容
俺ペナ← | TOWN | ||||
設置方法← | セキュリティ対策 | ||||
「街コンテスト」の不正防止← | 「銀行ローン」の不正防止 | →「掲示板」の不正防止 |
野良猫タウン
当サイトでは、「野良猫タウン」として「TOWN」を設置・公開しています。
オリジナル改造を施した「のんびりまったりタウン」です。
100名限定で楽しんで頂ければ、嬉しいです♪
【劇ぱわ改造設置支援サイト】Take it easy ! RYOQUEST presents
『野良猫のCGI講座』は、
【劇ぱわ改造設置支援サイト】Take it easy ! RYOQUEST presents のコンテンツとして、虎猫が公開しています。
「劇空間ぱわふるリーグ2 ver 3.00b(劇ぱわ)」は、
『きままなまま』で管理人にーやん様が作成・無料配布されているCGI/Perlによる野球ゲームです。
「TOWN」は、
『Brassiere』で配布されているCGI/Perlによるゲームです。
サイト自体は現在休止中ですが、製作されたゲームなどの配布は継続されています。
参考にされた方は、当サイトへリンクを貼って下さい♪
サイト名:Take it easy ! RYOQUEST presents
(サイト名:Take it easy !)
URL:http://ryoquest.sakura.ne.jp/
バナーURL:http://ryoquest.sakura.ne.jp/image/tie_8831an.gif
![]()
『旧:野良猫のCGI講座』
以前の『野良猫のCGI講座』をご覧になりたい方は、『旧:野良猫のCGI講座』からアクセスして下さい。
但し、更新は一切していません。
(※「旧:野良猫のCGI講座」には「TOWN」に関する記述はありません。)