初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2017-03-23 01:08:18

qb_dp
Member

FileMaker補助アプリケーション|ProcessMakerHL

FileMaker補助アプリケーション
アプリ名:ProcessMakerHL(プロセス メーカー エイチ エル) For Windows
というモノを作成しました。

BETAテスト中です。よろしければ、使ってやって下さい。(テストにご協力下さい。)
https://sites.google.com/site/processmakerhl/

簡易WEBサーバーです。
FileMakerのスクリプト「URLから挿入」を使用し、「cmd.exe」「powerShell」「PHP」「Node.je」などなどど実行し、戻り値の取得ができます。
また、他のPC、MacのFileMaker、iPhone、iPadのFileMaker Goから「ProcessMakerHL」が起動しているPCのFileMakerのスクリプトを実行することが出来ます。

Offline

#2 2017-03-23 02:44:34

Hiro
Member

Re: FileMaker補助アプリケーション|ProcessMakerHL

いつも大変有意義なFMツールの開発・公開ありがとうございます。
早速、DLして動かしてみましたが、素晴らしいですネ。

・所でつまらない質問ですが、httppost:というサポート外のプロトコルが記された箇所があり、
アクセスに失敗するようですが、なにか意味があるのでしょうか?単にhttp:に直せば良いですか?
・それと、?と&のエスケープもしてあるURLと、してないURLとがあるようですが、その使い分けは?

Last edited by Hiro (2017-03-23 02:50:30)

Offline

#3 2017-03-23 09:52:06

honda
Member

Re: FileMaker補助アプリケーション|ProcessMakerHL

さすが素晴らしいです。

ただ、サーバー上のexe叩き放題になるので、セキュリティ上は結構厳しいですね。
cmdやpowershellのように既知のターゲットに絞るか、
iniとかで許可するexeを指定させるかしないと、色々怒られそうです。

これ当然クライアントはFileMakerでなくても使えますが、
レスポンスコードは正しく返さないと、他の言語等からは使いにくそうです。

言語はC#でしょうか。
最近golangの巨大なexeばかり見ていたので、一瞬「12KiBでWebサーバ!?」となりました。

-

> ・所でつまらない質問ですが、httppost:というサポート外のプロトコルが記された箇所があり、
> アクセスに失敗するようですが、なにか意味があるのでしょうか?単にhttp:に直せば良いですか?
> ・それと、?と&のエスケープもしてあるURLと、してないURLとがあるようですが、その使い分けは?

横からです。httppostプロトコルはFileMakerからPOSTするための独自プロトコルで、ver.13から使えます。
エスケープはPowerShellに渡す箇所だけっぽく見えますが、確かにサーバー側でどうデコードされるのか分かりにくいです。

Offline

#4 2017-03-23 10:03:42

qb_dp
Member

Re: FileMaker補助アプリケーション|ProcessMakerHL

Hiroさん
早速ためしていただいてありがとうございます。

httppost:というサポート外のプロトコルが記された箇所があり...

FileMaker 13 から[URL から挿入] で利用できるプロトコルが追加されました。
[URL から挿入] は、http、https、httppost、httpspost、ftp、ftps、file プロトコルをサポートします。
http://www.filemaker.com/help/13/fmp/ja … tml#634666

?と&のエスケープもしてあるURLと、してないURLとがあるようですが、その使い分けは?

以下のような場合、

httppost://localhost:8081/?target=powershell
&Arguments=Start-Process 'fmp://$/ProcessMakerHL%3fscript=test%26$argu=テスト';


[Arguments]は、「Start-Process 'fmp://$/ProcessMakerHL%3fscript=test%26$argu=テスト';」コレを取得したいのですが、

コレだと、
httppost://localhost:8081/?target=powershell
&Arguments=Start-Process 'fmp://$/ProcessMakerHL?script=test&$argu=テスト';

[Arguments]が、「Start-Process 'fmp://$/ProcessMakerHL」こうなり正しく取得できないのです。
[Arguments]部分は、記述がややこしくなるので、BASE64での引数渡しも追加しようかと考えています。

Offline

#5 2017-03-23 10:23:25

qb_dp
Member

Re: FileMaker補助アプリケーション|ProcessMakerHL

honda wrote:

ただ、サーバー上のexe叩き放題になるので、セキュリティ上は結構厳しいですね。

そうなんです。
「http://*:8081/」で実行した場合は、かなり危険なアプリになります。
今後は、APIトークン での認証を検討しています。(簡易認証になりますが(^^;))

言語はC#でしょうか。

C#です。

エスケープはPowerShellに渡す箇所だけっぽく見えますが、確かにサーバー側でどうデコードされるのか分かりにくいです。

できたてで公開したのですみません。(^^;)、BETA と言いながら、alpha版な感じです.....。
以下のような感じが、良いかな~と考えています。

URLから挿入[
"httppost://localhost:8081/?target=" & GetAsURLEncoded ( {target} ) & "&Arguments=" & GetAsURLEncoded ( {Arguments} )
]

レスポンスコードは正しく返さないと、他の言語等からは使いにくそうです。

「"text/plain;charset=utf-8"」現在固定です。今後も固定のままの可能性が.....。

各アプリからの標準出力の文字コードは、「&StandardOutputEncoding=UTF-8」で指定出来ます。

Offline

#6 2017-03-23 11:59:47

honda
Member

Re: FileMaker補助アプリケーション|ProcessMakerHL

qb_dp wrote:

今後は、APIトークン での認証を検討しています。(簡易認証になりますが(^^;))

私はやや似たようなものをGoで書いてますが、大抵はWeb向けのブリッジとして使っていて、
実態はシングルバイナリのWeb APIみたいなものです。なのでWebのその先の漏洩とか負荷とかありえますが、そこ止まりです。
一方ProcessMakerHLはシェルへのブリッジなので、極端な話、試行錯誤してる間に指定ミスが原因で意図せぬファイル削除、とかもあり得るのが一番怖いです。
確かに無茶苦茶強力なんですけど、コマンド不慣れなFileMakerユーザーには、このガバガバっぷりは思わぬ事故を招きそうで…。

ブラックリスト式で操作を止めるのは大変でしょうし、かといってホワイトリストで絞ると魅力が。
トークン等で多少ハードル上げれば、全くシェルの分からないユーザーは減るかもしれませんが、慣れててもミスは有り得そうで。
FileMakerに手軽に外部の処理を渡せる良い仕組みなんですが、ほぼシェル直結というのがどうしても怖いです。


qb_dp wrote:

以下のような感じが、良いかな~と考えています。

URLから挿入[
"httppost://localhost:8081/?target=" & GetAsURLEncoded ( {target} ) & "&Arguments=" & GetAsURLEncoded ( {Arguments} )
]

この仕様なら楽で良いと思います。

qb_dp wrote:

「"text/plain;charset=utf-8"」現在固定です。今後も固定のままの可能性が.....。
各アプリからの標準出力の文字コードは、「&StandardOutputEncoding=UTF-8」で指定出来ます。

言葉足らずでした。MIMEやレスポンスコードはエンコーディングでなく、HTTPのステータスコードの方です。
現状常に200で返しているようなので、細かいのはともかく、500,400,300番代だけでも切り分けられれば、
アプリケーション側でデバッグやリトライが可能なので。

Offline

#7 2017-03-23 14:26:12

qb_dp
Member

Re: FileMaker補助アプリケーション|ProcessMakerHL

やはり、セキュリティーが気になりますよね.....。
>HTTPのステータスコードの方です。
あ~!こちらこそ知識不足で申し訳ないです。
おっしゃる通り「200」固定です。HTTPのステータスコードについては、ほぼ気にしてなくて「200」を返しとけばイイか! 程度に思ってました。
FileMakerでヘッダー情報取れないし.....。(^^;)

HTTPステータスコードは、今後調べてみます。

Offline

#8 2017-03-25 00:25:21

qb_dp
Member

Re: FileMaker補助アプリケーション|ProcessMakerHL

セキュリティーの問題が気になるので、サーバー部分を書き換え、管理者権限なしの起動でも外部から接続できるようにしました。
更に気になっていたVisualStudio For Macのお試しも兼ねて、Macで起動してみるとコードの書き換えは、一切なしでMac OS Xで動作しました。!!
中々強力なアプリになりそうです。
まあ、MacのFileMakerの場合は、AppleScriptを使えば戻り値を取得できますが、Winと共用のコードでより簡単にシェルを叩けます。
最新版は、近日公開します。

説明動画では、Bash、Mac版PowerShell、Node.js を実行しています。
また、IPhoneのFileMaker GoからMac のFileMakerのスクリプトを実行しています。
https://youtu.be/ne9E6gT1i2E

Offline

#9 2017-03-25 12:51:51

honda
Member

Re: FileMaker補助アプリケーション|ProcessMakerHL

> 管理者権限なしの起動でも外部から接続できるようにしました。

これはむしろ、事故防止に権限落として起動した方が良い、って感じでしょうか。

-

HTTPのステータスコードの件は、仰るようにFileMakerは全部切り捨てるとこなんで、
さらに追加で外部ツールと連携する際は必要、ぐらいの感じです。

それにしてもMono、CUIとはいえ一切書き換え無しですか。
FMClipboardEditもC#だし、手入れして移植してみようかな。

Offline

#10 2017-03-27 00:31:51

qb_dp
Member

Re: FileMaker補助アプリケーション|ProcessMakerHL

>> 管理者権限なしの起動でも外部から接続できるようにしました。
>これはむしろ、事故防止に権限落として起動した方が良い、って感じでしょうか

そうですね。外部からの接続の時にやりたい放題だと、あまりにも危険かと。
管理者権限で使用したいときは、管理者権限で起動すればOKです。

>それにしてもMono、CUIとはいえ一切書き換え無しですか。
そうなんですよ。結構なオドロキきです。



アプリ名を変更したため、新しいトピックをたてました。
FileMaker補助アプリケーション|ProcessMakerTL  / 初心者のFileMaker pro Q&A
https://fm-aid.com/bbs2/viewtopic.php?id=6178

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.046 seconds, 10 queries executed - Memory usage: 550.21 KiB (Peak: 571.12 KiB) ]