質問
-
エコノミー
メールフォームCGIのJSファイル403について -
本文:
タイトルの通り、jsファイルが403になります。
これは、Google Chromeのみで現在発生しているようです。
これだけは、ネットオウルの掲示板で先に情報を仕入れようと思います。パーミッションは一番下に書いて置きます。
メールフォームCGI UTF-8 Only SYNCK GRAPHICA
スマホ向けがスカッと対応していない様子だったので、色々とチェック中にChromeのみ403である事が発覚。
Failed to load resource: the server responded with a status of 403 (Forbidden) エラー mailform.js 1
IE11やEdgeは吐いていない様子。
その他に、favicon.icoは作成していないのにエラー表示
(404だと思った)
Chromeの拡張機能のHTMLチェッカーが出しているエラー
があったりします。
htmlerrorchecker.js:1 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.
(anonymous) @ htmlerrorchecker.js:1
尚、ダウンロードした状態のexample.htmlはHTML4の様子。それをHTML5に変更しています。パーミッションの設定は下記で設定。ネットオウル側は、サポート対象外との事でこの辺りも引っ掛かる部分に該当しているようです。
mailform/gazou/background.jpg 644
mailform/gazou/mimizuku_cgi-logo.jpg 644
mailform/gazou/HP_bannar.gif 644
mailform/check.cgi 705
mailform/count.dat 600
cound.dat ※これがどうしても777になる。
mailform/index2.html 644
mailform/mailform.js 600
mailform/send.cgi 705
mailform/sendlog.cgi 600
mailform/style.css 644
mailform/style2.css 644
現在、製作者様の所にも、送信者に自動返信されない現象やパーミッションの確認でCGIは仮設置中 http://mimizuku-owl.com/mailform/index2.html
※郵便関連のフォルダ・HTMLタグは消去ずみ
製作者様は、CGI設置しないとサポート受け付けていないみたいなので、今暫く公開しておきます。よろしくお願いいたします。 - 緊急度:急ぎ投稿者:mike7cat515さん投稿時間:2018/10/13 23:32
回答 No.7678
-
本文:
> mailform/mailform.js 600 =>644
は正解だと私も思います。
600 だと、ファイル所有者からしか読めないので、おそらくウェブサーバには読めません。
Firefox の「要素を調査」の「コンソール」でもエラーが出ています。Chrome特有ではないです。
「<script> のソース “http://mimizuku-owl.com/mailform/mailform.js” の読み込みに失敗しました。 index2.html:50」
HTMLチェッカーの方は"deprecated"(時代遅れです)のメッセージなので、今回は措いておいてよいでしょう。
- 投稿者:ayaguchiさん 投稿時間:2018/10/14 00:25
回答 No.7679
-
本文:
エクステンションのHTMLチェッカーが出しているエラーに関しては、エクステンションのほうの問題かもしれませんから。
無効にしてみればいかがでしょうか。
favicon.icoはブラウザ等が勝手に読みに行きたがるので、ファイル無くてエラーは普通に起こりますよね。
> mailform/count.dat 600
> cound.dat ※これがどうしても777になる。
600 はファイル所有者のみ読み書き可 rw------- ですが、
サーバの設定によってはCGIプログラムの実行ユーザが異なるので、606 や 666 とかでないとうまくいかないこともよくあると思います。
> mailform/sendlog.cgi 600
これは、ログファイルを他人に読ませないために拡張子を .cgi にしているパターンかもしれませんが、
600では、上記と同じくCGIプログラムから読み書き不可能な状態になっている可能性があります。
- 投稿者:ayaguchiさん 投稿時間:2018/10/14 00:56
回答 No.7680
-
本文:
メールフォームCGIの設置マニュアル
https://www.synck.com/contents/download/cgi-perl/mailform_jcode.html
上記通りでまずは動くかどうかですよね。
■
>>
フォルダ 705 / 755 のいずれか
.cgiなどのCGIの実行ファイル 705 / 755 のいずれか
.cgiの中でも直接は実行されないもの 600
.html / .php / .zip などのファイル 644
.txt / .dat / .log などのファイル 600
https://www.star.ne.jp/manual/homepage_server_spec.php
<<
スターサーバーのマニュアルでは上記通り
■
>cound.dat ※これがどうしても777になる。
777なるではなくて、変更できないの間違いでは?
このファイルだけ、所有者(作成者)がちがうのでは?
このファイルを削除して、FTPで転送して、FTPで属性変更すれば、600にできると思う。
- 投稿者:k-tanさん 投稿時間:2018/10/14 07:45
質問者からのコメント
スターサーバーのパーミッションの仕方を見て不明な部分は運営に質問していたのですが、個々のCGIについてはサポート対象外でパーミッションの確認が上手く出来なかったというのが現状なのです。
Count.datについては、製作者の指定では777ですね。スターサーバーの指定は600ですし。mailformのフォルダとCGIは製作者の指定は755です。スターサーバーの推奨は705のようです。このような違いがサポートと上手く噛み合っていなかったんです。
ログファイル関連については、どうやら一旦chmod 0777で開いてchmod 0600で閉じているようです。なので、改めてファイルを転送し直すと内容がクリアになる代わりに777に変わるのかもしれません。
ただ、非プログラムの中でも、mailform.jsはほぼCGIの中身(メール不正判定等)の様子だったので、600にしたのが間違いでした。
現在、CGIについては705のほうで設定していますが、製作者の指定のほうにしたほうが良いのでしょうか。引き続きよろしくお願いいたします。
回答 No.7683
-
本文:
> ただ、非プログラムの中でも、mailform.jsはほぼCGIの中身(メール不正判定等)の様子だったので、600にしたのが間違いでした。
この JavaScript ファイルは、ブラウザ上で(クライアント側が)実行するテキストファイルなので、ウェブサーバを介してブラウザが読み出せないといけません。
CGIプログラムにせよ、プログラムのソースコードを読んでバグを見つけられ悪用可能だというようなケースでなければ、不特定多数に読めても危険というわけではないと思いますが、
そもそも、CGI プログラム(.cgi など、ウェブサーバが自動で実行しようとするファイル)は、ウェブサーバが
ただのテキストファイルや画像ファイルのようなスタティックなファイルだと認識せず、
実行するプログラム(動的なもの)だと認識するので、
** プログラムのソースコードをウェブサーバが公開することはなく ** 、実行結果を閲覧者に公開します。
だから強いていえば問題は、同じサーバを使っている別のユーザに見える危険性ですが、スターサーバーの場合はリスクが少ない気がします。(シェルを開放していたり、他ユーザのディレクトリに入れちゃったりするサーバだと、危なっかしいですが。)
> 現在、CGIについては705のほうで設定していますが、製作者の指定のほうにしたほうが良いのでしょうか。引き続きよろしくお願いいたします。
パーミッションで、group や others に対して許可しなければならないか否かは、動かすサーバーの設定次第で異なります。
要は管理者のポリシーの問題です
作者の指定は、others の権限で実行や読み書きをするサーバで運用する可能性を想定したものです。
スターサーバーは、others に対して許可しなくともよく、 user の権限で動作するようにしてあるようです。
ですので、原則としては、スターサーバーの指定しているパーミッションで運用する。
ただ、うまくいかないことがあれば、パーミッションが原因の可能性を含めて検討する、ということでよいと思います。
- 投稿者:ayaguchiさん 投稿時間:2018/10/14 14:03
回答 No.7684
-
本文:
> 現在、CGIについては705のほうで設定していますが、製作者の指定のほうにしたほうが良いのでしょうか。引き続きよろしくお願いいたします。
よほどセキュリティに厳しいプログラムでなければ、「動かすだけであれば」全部777でいいんです。
真ん中の数が、ネットオウルの推奨では、0 になっている (777でなく、707などになっている)のは、同じサーバーで動いている隣に人に、除かれたり、書き換えられたりしないことが目的なので、0 でないと動かないということは、滅多にありません。その辺は、動くことが確認できてから0に直しても間に合います。(まあ、放置しておくのはお勧めしませんが...)
同じように、推奨の設定が、作者の推奨とネットオウルの推奨で多少ずれがあるのは、一言でウェブサーバーといっても、サーバーによって誰の権限で動いてるかが少しずつ違うからです。
一番の違いはウェブサーバーそのものが、各ユーザーの権限で動いているか、システムの権限で動いているかですが、どちらのケースも存在します。そこが推奨のパーミッションの違いに現れます。作者の推奨とサーバー会社(=ネットオウル)の推奨とどちらに従うべきかといえば、サーバー会社の推奨に従うべきです。
(作者の推奨はいろんなサーバーでも動くような最大公約数的な設定になっていることが多い)
まあ、最初は全部 707 でいいのでは。他人に読まれて困るものは、700 ですが、ウェブサーバーも他人なので、あまりきつくすると動かなくなります。 - 投稿者:ジョバンニさん 投稿時間:2018/10/14 14:46
回答 No.7685
-
本文:
パーミッションについて http://www.tku.ac.jp/~densan/local/permission/permission.htm
■
mike7cat515さんが欲しい答えは、「動作するのなら、厳しい設定のほうを採用するのが正しい」だと思う。でもって、それで問題ないと思う。
■
ほかの人も書いてるけど、中身を読まれて困るものは、ちゃんと考えたらよいと思う。
mailform/count.dat
は、設置マニュアル見ると、通し番号が入ってるだけなので、気持ち悪いけど、777でも問題ないと思う。 - 投稿者:k-tanさん 投稿時間:2018/10/14 17:02
回答 No.7686
-
本文:
皆さま、回答ありがとうございました。
無事に解決したようなので、締め切らせて頂きます。
尚、始めにJSファイルが動作していない事を知らせてくれたk-tanさんをベストアンサーとさせて頂きます。
回答ありがとうございました。 - 投稿者:mike7cat515さん 投稿時間:2018/10/14 20:58
回答 No.7677
この回答がベストアンサーです
mailform/mailform.js 600 =>644
パーミッションの設定がおかしいと思う。
jsは単なるjavascriptファイルなので、htmlと同じでないとおかしい。
■
http://mimizuku-owl.com/mailform/mailform.js
このURL、どのブラウザでも403になる。
<script type="text/javascript" src="mailform.js" charset="utf-8"></script>
HTMLのこのスクリプトを読むときに403になる。