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
Take it easy !

『旧:野良猫のCGI講座』

以前の『野良猫のCGI講座』をご覧になりたい方は、『旧:野良猫のCGI講座』からアクセスして下さい。
但し、更新は一切していません。
(※「旧:野良猫のCGI講座」には「TOWN」に関する記述はありません。)

ページのトップへ戻る