Skip to content

Commit 345a1a8

Browse files
committed
禁止ホストには、管理者画面・編集・未投稿画像のリンクを出さない。
1 parent 4bf5e32 commit 345a1a8

5 files changed

Lines changed: 41 additions & 34 deletions

File tree

petitnote/functions.php

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,10 @@ function logout_admin(): void {
2121
function aikotoba(): void {
2222
global $aikotoba,$en,$keep_aikotoba_login_status;
2323

24+
//禁止ホストをチェック
25+
check_badhost();
2426
//投稿間隔をチェック
2527
check_submission_interval();
26-
if(is_badhost()){
27-
error($en? 'Rejected.' : '拒絶されました。');
28-
}
2928
//Fetch API以外からのPOSTを拒否
3029
check_post_via_javascript();
3130
check_same_origin();
@@ -137,10 +136,8 @@ function is_adminpass($pwd): bool {
137136
function admin_in(): void {
138137
global $boardname,$use_diary,$use_aikotoba,$petit_lot,$petit_ver,$skindir,$en,$latest_var;
139138

140-
if(is_badhost()){
141-
error($en? 'Rejected.' : '拒絶されました。');
142-
}
143-
139+
//禁止ホストをチェック
140+
check_badhost();
144141
aikotoba_required_to_view();
145142

146143
//古いテンプレート用の使用しない変数
@@ -180,12 +177,10 @@ function check_aikotoba(): bool {
180177
function adminpost(): void {
181178
global $second_pass,$en;
182179

180+
//禁止ホストをチェック
181+
check_badhost();
183182
//投稿間隔をチェック
184183
check_submission_interval();
185-
186-
if(is_badhost()){
187-
error($en? 'Rejected.' : '拒絶されました。');
188-
}
189184
//Fetch API以外からのPOSTを拒否
190185
check_post_via_javascript();
191186
check_same_origin();
@@ -210,13 +205,10 @@ function adminpost(): void {
210205
function admin_del(): void {
211206
global $second_pass,$en;
212207

208+
//禁止ホストをチェック
209+
check_badhost();
213210
//投稿間隔をチェック
214211
check_submission_interval();
215-
216-
if(is_badhost()){
217-
error($en? 'Rejected.' : '拒絶されました。');
218-
}
219-
220212
//Fetch API以外からのPOSTを拒否
221213
check_post_via_javascript();
222214
check_same_origin();
@@ -240,6 +232,8 @@ function admin_del(): void {
240232
//ユーザー削除モード
241233
function userdel_mode(): void {
242234

235+
//禁止ホストをチェック
236+
check_badhost();
243237
session_sta();
244238
$_SESSION['userdel']='userdel_mode';
245239

@@ -972,6 +966,15 @@ function check_same_origin(): void {
972966
}
973967
}
974968

969+
//禁止ホストなら拒絶
970+
function check_badhost(): void {
971+
global $en;
972+
if(is_badhost()){
973+
error($en? 'Rejected.' : '拒絶されました。');
974+
}
975+
}
976+
977+
//記事の番号かどうかチェック
975978
function check_open_no($no): void {
976979
global $en;
977980
$no=(string)$no;
@@ -1079,9 +1082,8 @@ function deltemp(): void {
10791082
function Reject_if_NGword_exists_in_the_post(): void {
10801083
global $use_japanesefilter,$badstring,$badname,$badurl,$badstr_A,$badstr_B,$allow_comments_url,$max_com,$en;
10811084

1082-
if(is_badhost()){
1083-
error($en?'Post was rejected.':'拒絶されました。');
1084-
}
1085+
//禁止ホストをチェック
1086+
check_badhost();
10851087

10861088
$admin =(adminpost_valid()||admindel_valid());
10871089

petitnote/index.php

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?php
22
//Petit Note (c)さとぴあ @satopian 2021-2025
33
//1スレッド1ログファイル形式のスレッド式画像掲示板
4-
$petit_ver='v1.91.3';
5-
$petit_lot='lot.20250613';
4+
$petit_ver='v1.92.0';
5+
$petit_lot='lot.20250614';
66

77
$lang = ($http_langs = $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '')
88
? explode( ',', $http_langs )[0] : '';
@@ -763,10 +763,8 @@ function paint(): void {
763763
global $boardname,$skindir,$pmax_w,$pmax_h,$pmin_w,$pmin_h,$max_px,$en;
764764
global $usercode,$petit_lot,$httpsonly,$is_badhost;
765765

766-
if(is_badhost()){
767-
error($en? 'Rejected.' : '拒絶されました。');
768-
}
769-
766+
//禁止ホストをチェック
767+
check_badhost();
770768
check_same_origin();
771769

772770
$app = (string)filter_input_data('POST','app');
@@ -1666,6 +1664,8 @@ function confirmation_before_deletion ($edit_mode=''): void {
16661664
global $boardname,$home,$petit_ver,$petit_lot,$skindir,$use_aikotoba,$set_nsfw,$en;
16671665
global $deny_all_posts;
16681666

1667+
//禁止ホストをチェック
1668+
check_badhost();
16691669
check_same_origin();
16701670
//管理者判定処理
16711671
$admindel=admindel_valid();
@@ -2054,10 +2054,9 @@ function del(): void {
20542054

20552055
//投稿間隔をチェック
20562056
check_submission_interval();
2057+
//禁止ホストをチェック
2058+
check_badhost();
20572059

2058-
if(is_badhost()){
2059-
error($en? 'Rejected.' : '拒絶されました。');
2060-
}
20612060
check_csrf_token();
20622061

20632062
$admindel=admindel_valid();
@@ -2429,15 +2428,18 @@ function view(): void {
24292428
$nsfwc=(bool)filter_input_data('COOKIE','nsfwc',FILTER_VALIDATE_BOOLEAN);
24302429
$set_nsfw_show_hide=(bool)filter_input_data('COOKIE','p_n_set_nsfw_show_hide',FILTER_VALIDATE_BOOLEAN);
24312430

2432-
//token
2433-
$token=get_csrf_token();
24342431

24352432
$arr_apps=app_to_use();
24362433
$count_arr_apps=count($arr_apps);
24372434
$use_paint=!empty($count_arr_apps);
24382435
$select_app=($count_arr_apps>1);
24392436
$app_to_use=($count_arr_apps===1) ? $arr_apps[0] : '';
24402437

2438+
$use_paint = $is_badhost ? false : $use_paint; //禁止ホストの時はペイントアプリを使用しない
2439+
2440+
//token
2441+
$token=get_csrf_token();
2442+
24412443
$use_top_form = true;//互換性のために常にtrue;
24422444
//ページング
24432445
list($start_page,$end_page)=calc_pagination_range($page,$pagedef);
@@ -2477,7 +2479,7 @@ function res (): void {
24772479
aikotoba_required_to_view();
24782480
set_page_context_to_session();
24792481
//禁止ホスト
2480-
$is_badhost=is_badhost();
2482+
$is_badhost = is_badhost();
24812483

24822484
$max_byte = $max_kb * 1024*2;
24832485

@@ -2648,6 +2650,8 @@ function res (): void {
26482650
$select_app=($count_arr_apps>1);
26492651
$app_to_use=($count_arr_apps===1) ? $arr_apps[0] : '';
26502652

2653+
$use_paint = $is_badhost ? false : $use_paint; //禁止ホストの時はペイントアプリを使用しない
2654+
26512655
//token
26522656
$token=get_csrf_token();
26532657

petitnote/template/basic/main.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ <h1 class="title"><a href="./"><?=h($boardname)?></a></h1>
3737
<span>
3838
<?php if($userdel || $admindel):?>
3939
[<a href="./?mode=logout" rel="nofollow"><?php if($en):?>Exit edit mode<?php else:?>編集モード終了<?php endif;?></a>]
40-
<?php else:?>
40+
<?php elseif($resform):?>
4141
[<a href="./?mode=userdel" rel="nofollow"><?php if($en):?>Edit<?php else:?>編集<?php endif;?></a>]
4242
<?php endif;?>
4343
<?php endif;?>
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
[<a href="<?=h($home)?>">HOME</a> / <a href="./?mode=adminin"><?php if($en):?>Admin<?php else:?>管理<?php endif;?></a>]
1+
<?php $is_badhost = $is_badhost ?? false; ?>
2+
[<a href="<?= h($home) ?>">HOME</a><?php if (!$is_badhost): ?> / <a href="./?mode=adminin"><?php if ($en): ?>Admin<?php else: ?>管理<?php endif; ?></a><?php endif; ?>]

petitnote/template/basic/res.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ <h1 class="title"><a href="./"><?=h($boardname)?></a></h1>
4848
<span>
4949
<?php if($userdel || $admindel):?>
5050
[<a href="./?mode=logout" rel="nofollow"><?php if($en):?>Exit edit mode<?php else:?>編集モード終了<?php endif;?></a>]
51-
<?php else:?>
51+
<?php elseif($resform):?>
5252
[<a href="./?mode=userdel" rel="nofollow"><?php if($en):?>Edit<?php else:?>編集<?php endif;?></a>]
5353
<?php endif;?>
5454
<?php endif;?>

0 commit comments

Comments
 (0)