เด‡เด‚เด—เตเดฒเต€เดทเตเดซเตเดฐเดžเตเดšเตเดธเตเดชเดพเดจเดฟเดทเต

Ad


OnWorks เดซเต†เดตเดฟเด•เตเด•เต‹เตบ

haserl - เด•เตเดฒเต—เดกเดฟเตฝ เด“เตบเดฒเตˆเดจเดฟเตฝ

เด‰เดฌเตเดฃเตเดŸเต เด“เตบเดฒเตˆเตป, เดซเต†เดกเต‹เดฑ เด“เตบเดฒเตˆเตป, เดตเดฟเตปเดกเต‹เดธเต เด“เตบเดฒเตˆเตป เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ MAC OS เด“เตบเดฒเตˆเตป เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต‚เดŸเต† OnWorks เดธเต—เดœเดจเตเดฏ เดนเต‹เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดชเตเดฐเตŠเดตเตˆเดกเดฑเดฟเตฝ เดนเดพเดธเต†เตผเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

Ubuntu Online, Fedora Online, Windows online emulator เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ MAC OS เด“เตบเดฒเตˆเตป เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดŽเดจเตเดจเดฟเด™เตเด™เดจเต†เดฏเตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดธเต—เดœเดจเตเดฏ เด“เตบเดฒเตˆเตป เดตเตผเด•เตเด•เตโ€Œเดธเตเดฑเตเดฑเต‡เดทเดจเตเด•เดณเดฟเดฒเตŠเดจเตเดจเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต OnWorks เดธเต—เดœเดจเตเดฏ เดนเต‹เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดฆเดพเดคเดพเดตเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดตเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เดนเดพเดธเต†เตผเดฒเดพเดฃเดฟเดคเต.

เด‰เดฌเตเดฃเตเดŸเตเดตเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดซเต†เดกเต‹เดฑเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดตเดฟเตปเดกเต‹เดธเต เดธเดฟเดฎเตเดฎเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• MACOS เดธเดฟเดฎเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดชเดŸเตเดŸเดฟเด•:

NAME


haserl - เด‰เตพเดšเตเดšเต‡เตผเดคเตเดค เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเด•เตพเด•เตเด•เตเดณเตเดณ เด’เดฐเต cgi เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚

เดธเดฟเดจเต‹เดชเตเดธเดฟเดธเต


#!/usr/bin/haserl [--เดทเต†เตฝ=เดชเดพเดคเตเดคเตเดธเตเดชเต†เด•เตเด•เต] [--upload-dir=เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ] [--upload-handler=เดนเดพเตปเดกเตเดฒเตผ]
[--upload-limit=เดชเดฐเดฟเดงเดฟ] [--เดŽเดฒเตเดฒเดพเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•] [--เด’เดจเตเดจเตเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดฐเตเดคเต] [--เดจเดฟเดถเดฌเตเดฆ] [--เดกเต€เดฌเด—เต]

[ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต ] [ <% เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต %> ] [ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต ] ...

เดตเดฟเดตเดฐเดฃเด‚


"PHP" เดถเตˆเดฒเดฟเดฏเดฟเดฒเตเดณเตเดณ cgi เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดšเต†เดฑเดฟเดฏ cgi เดฑเดพเดชเตเดชเดฑเดพเดฃเต Haserl, เดŽเดจเตเดจเดพเตฝ เด’เดฐเต UNIX เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต
เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเดพเดฏเดฟ เดฌเดพเดทเต เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เดทเต†เตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฒเตเดตเดพ. เด‡เดคเต เดตเดณเดฐเต† เดšเต†เดฑเตเดคเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚
เด‰เตพเดšเตเดšเต‡เตผเดคเตเดค เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเด•เดณเดฟเตฝ, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ PHP เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เด’เดจเตเดจเต เดตเดณเดฐเต† เดตเดฒเตเดคเดพเดฃเต.

เด‡เดคเต เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดธเดฟเดœเดฟเด เดŽเดžเตเดšเดฟเดจเดฟเดฒเต‡เด•เตเด•เต เดฎเต‚เดจเตเดจเต เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต:

เด‡เดคเต POST, GET เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดซเต‹เด‚ เด˜เดŸเด•เด™เตเด™เตพ เดจเต†เดฏเดฟเด‚=เดฎเต‚เดฒเตเดฏ เดœเต‹เดกเดฟเด•เดณเดพเดฏเดฟ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเต.
CGI เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด…เดจเตเดคเดฐเต€เด•เตเดทเด‚. เด‡เดคเต เด•เตเดฑเดšเตเดšเต เดชเต‹เดฒเต†เดฏเดพเดฃเต uncgi เดฑเดพเดชเตเดชเตผ.

เด‡เดคเต เด’เดฐเต เดทเต†เตฝ เดคเตเดฑเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดŽเดฒเตเดฒเดพ เดตเดพเดšเด•เด™เตเด™เดณเตเด‚ เด…เดšเตเดšเดŸเดฟเด•เตเด•เดพเดตเตเดจเตเดจ เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดŽเดฒเตเดฒเดพ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต
<% ... %> เดŽเดจเตเดจเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดคเดฟเด•เตพ เดทเต†เดฒเตเดฒเดฟเดฒเต‡เด•เตเด•เต เดชเดฆเดพเดจเตเดชเดฆเดฎเดพเดฏเดฟ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต. เด‡เดคเต เด’เดฐเต เดชเดฐเดฟเดงเดฟเดตเดฐเต†
เดŽเดดเตเดคเตเดคเต เดชเต‹เดฒเต† PHP เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ.

เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเตเดฑเต† เด‰เดŸเดฎเดฏเตเด•เตเด•เต เด…เดคเดฟเดจเตเดฑเต† เด…เดจเตเดฎเดคเดฟเด•เตพ เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต เด‡เดคเต เด“เดชเตเดทเดฃเดฒเดพเดฏเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต,
เดฏเตเดŸเต† เดšเดฟเดฒ เดธเตเดฐเด•เตเดทเดพ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เดจเตฝเด•เตเดจเตเดจเต suexec or cgiwrapper.

เด“เดชเตเดทเดจเตเด•เตพ เดธเด‚เด—เตเดฐเดนเด‚


เด‡เดคเต เด•เดฎเดพเตปเดกเต-เดฒเตˆเตป เด“เดชเตเดทเดจเตเด•เดณเตเดŸเต† เด’เดฐเต เดธเด‚เด—เตเดฐเดนเดฎเดพเดฃเต. เดฆเดฏเดตเดพเดฏเดฟ เด•เดพเดฃเตเด• เด“เดชเตเดทเดจเตเด•เตพ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเดจเต เด•เต€เดดเดฟเดฒเดพเดฃเต
เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดตเดฟเดตเดฐเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ เดจเต€เดฃเตเดŸ เด“เดชเตเดทเดจเตเดฑเต† เดชเต‡เดฐเต.

-เดŽ --เดŽเดฒเตเดฒเดพเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•
-n --เด’เดจเตเดจเตเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดฐเตเดคเต
-d --เดกเต€เดฌเด—เต
-s, --เดทเต†เตฝ
-เดŽเดธเต, --เดจเดฟเดถเดฌเตเดฆเดค
-U, --upload-dir
-u, --upload-limit
-H, --เด…เดชเตโ€Œเดฒเต‹เดกเต-เดนเดพเตปเดกเตโ€Œเดฒเตผ

เด“เดชเตเดทเดจเตเด•เตพ


--เดŽเดฒเตเดฒเดพเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•
REQUEST_METHOD POST เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ POST เดกเดพเดฑเตเดฑ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚
REQUEST_METHOD GET เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ URL เดกเดพเดฑเตเดฑเดฏเดฟเดฒเต† เดกเดพเดฑเตเดฑ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚. เดˆ เด“เดชเตเดทเตป
REQUEST_METHOD เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† POST, URL เดกเดพเดฑเตเดฑ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.
เดˆ เด“เดชเตโ€Œเดทเตป เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, REQUEST_METHOD เดจเต เดฎเตเตปเด—เดฃเดจ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเต (เด‰เดฆเดพ. เดฐเต€เดคเดฟ เด†เดฃเต†เด™เตเด•เดฟเตฝ
POST เด†เดฃเต, FORM_variables เดŽเดจเตเดจเดคเต COOKIE เดกเดพเดฑเตเดฑ, GET เดกเดพเดฑเตเดฑ, POST เดกเดพเดฑเตเดฑ เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต เดŽเดŸเตเดคเตเดคเดคเต.
เด† เด‰เดคเตเดคเดฐเดตเต. เดฐเต€เดคเดฟ GET เด†เดฃเต†เด™เตเด•เดฟเตฝ, FORM_variables COOKIE เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดŸเตเดคเตเดคเดคเดพเดฃเต, POST
เดกเดพเดฑเตเดฑ, เด•เต‚เดŸเดพเดคเต† เดกเดพเดฑเตเดฑ เดจเต‡เดŸเตเด•.) เดŽเดฒเตเดฒเดพ เด‡เตปเดชเตเดŸเตเดŸเต เดฐเต€เดคเดฟเด•เดณเตเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดฒเตเดฒ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต - เดตเต†เดฑเตเด‚
COOKIE เดกเดพเดฑเตเดฑเดฏเตเด‚ REQUEST_METHOD เด‰เด‚.

--เด…เด‚เด—เต€เด•เดฐเดฟเด•เตเด•เตเด•-เด’เดจเตเดจเตเดฎเดฟเดฒเตเดฒ
เดจเตฝเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดนเดพเดธเตผเตฝ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด‡เตปเดชเตเดŸเตเดŸเต http เด‰เดณเตเดณเดŸเด•เตเด•เดฎเดพเดฏเดฟ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ
เดคเดฟเดฐเด•เตเด•เดฅ. เดฎเดฑเตเดฑเตŠเดฐเต เดนเดพเดธเตผเตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดนเดพเดธเตผเตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดตเดฟเดณเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต.

--เดกเต€เดฌเด—เต
เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดชเด•เดฐเด‚, เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดฟเดจเตเดฑเต เดšเต†เดฏเตเดฏเตเด•. เดŽเด™เตเด•เดฟเตฝ
เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ 'REQUEST_METHOD' เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดกเดพเดฑเตเดฑ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเต
เดชเตเดฒเต†เดฏเดฟเตป/เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เด‰เดณเตเดณเดŸเด•เตเด• เดคเดฐเด‚. เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเดฆเดพเดจเตเดชเดฆเดฎเดพเดฏเดฟ เด…เดšเตเดšเดŸเดฟเด•เตเด•เตเดจเตเดจเต.

--เดทเต†เตฝ=เดชเดพเดคเตเดคเตเดธเตเดชเต†เด•เตเด•เต
เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดฌเดฆเตฝ เดฌเดพเดทเต เดชเต‹เดฒเตเดณเตเดณ เดทเต†เตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด•. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเด•เตพ "/ bin / sh"

เดทเต†เตฝ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต --shell= เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฐเตเดคเต/ bin / sh เดซเต‹เตผเดฎเดพเดฑเตเดฑเต. เดชเด•เดฐเด‚, เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•
"=" เด‡เดฒเตเดฒเดพเดคเต† เด‡เดคเดฐ เดซเต‹เตผเดฎเดพเดฑเตเดฑเต, --เดทเต†เตฝ" เดชเต‹เดฒเต†/ เดฌเดฟเตป / เดฌเดพเดทเต --norc". เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด•
เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด• เดชเตเดฐเดคเต€เด•เด™เตเด™เตพ เดชเดฐเดฟเดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด“เดชเตโ€Œเดทเตป เดธเตโ€ŒเดŸเตเดฐเดฟเด‚เด—เต เด‰เดฆเตเดงเดฐเดฟเด•เตเด•เตเด•.

เดฒเตเดตเดพ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดธเดฎเดพเดนเดฐเดฟเดšเตเดšเดคเต†เด™เตเด•เดฟเตฝ, เดธเด‚เดฏเต‹เดœเดฟเดคเดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต "lua" เดŽเดจเตเดจ เดธเตเดŸเตเดฐเดฟเด‚เด—เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต
เดฒเตเดตเดพ เดตเดฟเดŽเด‚. เดˆ เดธเตเดŸเตเดฐเดฟเด‚เด—เต เด•เต‡เดธเต เดธเต†เตปเดธเดฟเดฑเตเดฑเต€เดตเต เด†เดฃเต. เด‰เดฆเดพเดนเดฐเดฃเด‚: --เดทเต†เตฝ=lua

เด’เดฐเต เดฌเดฆเตฝ "luac" เด†เดฃเต. เด‡เดคเต เดนเดพเดธเตผ, เดฒเตเดต เดชเดพเดดเตโ€Œเดธเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเด•เตเดจเตเดจเต,
เด•เต‚เดŸเดพเดคเต† เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฟเดฏ เดฒเตเดตเดพ เดšเด™เตเด•เต เด†เดฃเต†เดจเตเดจเต เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต. เด•เดพเดฃเตเด• LUAC เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเตเดฏเด™เตเด™เตพเด•เตเด•เต เดคเดพเดดเต†
เดตเดฟเดตเดฐเด™เตเด™เตพ.

--เดจเดฟเดถเดฌเตเดฆเดค
Haserl เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดชเดฟเดถเด•เต เด…เดตเดธเตเดฅเด•เดณเดฟเตฝ เด’เดฐเต เดตเดฟเดตเดฐ เดธเดจเตเดฆเต‡เดถเด‚ เดชเตเดฐเดฟเดจเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดˆ
เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด‚ เด…เดŸเดฟเดšเตเดšเดฎเตผเดคเตเดคเตเดจเตเดจเต, เด…เด™เตเด™เดจเต† haserl-เดจเตเดฑเต† เด‰เดชเดฏเต‹เด—เด‚ เดชเดฐเดธเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฒเตเดฒ.

--upload-dir=เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเด•เตพ "/ tmp". เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตโ€Œเดค เดŽเดฒเตเดฒเดพ เดซเดฏเดฒเตเด•เดณเตเด‚ เด‡เดคเดฟเตฝ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดซเดฏเตฝ เดจเดพเดฎเดคเตเดคเดฟเตฝ เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดšเดคเดพเดฃเต
เดกเดฏเดฑเด•เตเดŸเดฑเดฟ HASERL_xxx_path เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดซเดฏเดฒเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. FORM_xxx_name
เด•เตเดฒเดฏเดจเตเดฑเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏ เดซเดฏเดฒเดฟเดจเตเดฑเต† เดฏเดฅเดพเตผเดคเตเดฅ เดชเต‡เดฐเต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

--upload-handler=เดชเดพเดคเตเดคเตเดธเตเดชเต†เด•เตเด•เต
เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดซเดฏเตฝ เด…เดชเตโ€Œเดฒเต‹เดกเตเด•เตพ เดŽเดดเตเดคเตเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚ เดˆ เดนเดพเตปเดกเตโ€Œเดฒเดฑเดพเดฃเต เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต
เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดซเดฏเดฒเตเด•เตพ. เดฎเตเดดเตเดตเตป เดชเดพเดคเตเดคเตโ€Œเดธเตเดชเต†เด•เตเด•เตเด‚ เดจเตฝเด•เดฃเด‚ (เดชเดพเดคเตเดคเต เดคเดฟเดฐเดžเตเดžเดฟเดŸเตเดŸเดฟเดฒเตเดฒ), เด•เต‚เดŸเดพเดคเต†
เด…เดชเตโ€Œเดฒเต‹เดกเต-เดนเดพเตปเดกเตโ€Œเดฒเดฑเดฟเดจเต เด’เดฐเต เด•เดฎเดพเตปเดกเต-เดฒเตˆเตป เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต: FIFO-เดจเตเดฑเต† เดชเต‡เดฐเต
เดเดคเต เด…เดชเตโ€Œเดฒเต‹เดกเต เดซเดฏเตฝ เด…เดฏเดฏเตเด•เตเด•เตเด‚. เด•เต‚เดŸเดพเดคเต†, เดนเดพเตปเดกเตเดฒเตผเด•เตเด•เต 3 เดฒเดญเดฟเดšเตเดšเต‡เด•เตเด•เดพเด‚
เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ: เด‰เดณเตเดณเดŸเด•เตเด• เดคเดฐเด‚, เดซเดฏเดฒเดฟเดจเตเดฑเต† เดชเต‡เดฐเต, เด’เดชเตเดชเด‚ NAME. เด‡เดต MIME-เดจเต† เดชเตเดฐเดคเดฟเดซเดฒเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต
เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเดฟเดจเดพเดฏเตเดณเตเดณ เด‰เดณเตเดณเดŸเด•เตเด•-เดตเตเดฏเดตเดนเดพเดฐ เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ. เดนเดพเดธเตผเตฝ เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ เดนเดพเตปเดกเตโ€Œเดฒเตผ เดซเต‹เตผเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด‚
เดซเดฏเตฝ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตโ€Œเดคเต, เด•เต‚เดŸเดพเดคเต† เด…เดชเตโ€Œเดฒเต‹เดกเต เดซเดฏเดฒเดฟเดจเตเดฑเต† เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ FIFO-เดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตเด‚.
เดนเดพเตปเดกเตผ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดฐเต† Haserl เดคเดŸเดฏเตเด‚. เดˆ เดฐเต€เดคเดฟ เดตเดฟเดฆเด—เตเดงเตผเด•เตเด•เตเดณเตเดณเดคเดพเดฃเต
เดฎเดพเดคเตเดฐเด‚.

--upload-limit=เดชเดฐเดฟเดงเดฟ
เดตเดฐเต† เดฎเตˆเด‚-เดŽเตปเด•เต‹เดกเต เดšเต†เดฏเตเดค เดซเดฏเตฝ เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด• เดชเดฐเดฟเดงเดฟ KB เด…เดชเตเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฃเต 0KB (เด‡เดฒเตเดฒ
เด…เดชเตโ€Œเดฒเต‹เดกเตเด•เตพ เด…เดจเตเดตเดฆเดจเต€เดฏเดฎเดพเดฃเต). เดฎเตˆเด‚-เดŽเตปเด•เต‹เดกเดฟเด‚เด—เต เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเตฝ 33% เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•.

เดšเตเดฐเตเด•เตเด•เดตเดฟเดตเดฐเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ OF เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚


เดชเตŠเดคเตเดตเต‡, เดตเต†เดฌเต เดธเต†เตผเดตเตผ เดจเดฟเดฐเดตเดงเดฟ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เดซเต‡เดพเตผเด•เตเด•เต or
CGI เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเดฑเตเดฑเตŠเดฐเต เดฐเต€เดคเดฟ. เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดนเดพเดธเตผเตฝ เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเต, เดฆเดฟ
เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต:

If เดนเดพเดธเตผเตฝ suid เดฑเต‚เดŸเตเดŸเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต, เดคเตเดŸเตผเดจเตเดจเต uid/gid เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเตเดฑเต† เด‰เดŸเดฎเดฏเดพเดฏเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดธเตเด•เดพเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเต HTTP_COOKIE, เด‡เดคเต เดตเต†เดฌเต เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚
เดธเต†เตผเดตเตผ. เด…เดคเต เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดชเดพเดดเตเดธเต เดšเต†เดฏเตเดค เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เตพ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด‚.

เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดธเตเด•เดพเตป เดšเต†เดฏเตเดฏเตเดจเตเดจเต REQUEST_METHOD, เดตเต†เดฌเต เดธเต†เตผเดตเตผ เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟเดฏเดคเดพเดฃเต.
เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดฐเต€เดคเดฟเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ, เดธเดพเดงเดพเดฐเดฃ เด‡เตปเดชเตเดŸเตเดŸเต เดตเดพเดฏเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตโ€Œเดคเดคเต
เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เตพ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดธเตเดฅเดพเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŸเต‹เด•เตเด•เดฃเตˆเดธเตเดกเต, เดชเดพเดดเตเดธเดฟเด‚เด—เต เดนเดพเดธเตผเตฝ เดฑเต‹ เดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด•เต‹เดกเต เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ. เดฑเต‹ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เด†เดฃเต
"เดŽเด•เตเด•เต‹" เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเดพเด•เตเด•เดฟ เดฎเดพเดฑเตเดฑเดฟ, เดคเตเดŸเตผเดจเตเดจเต เดŽเดฒเตเดฒเดพ เดŸเต‹เด•เตเด•เดฃเตเด•เดณเตเด‚ เดธเดฌเต-เดทเต†เดฒเตเดฒเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตเด‚.

เดนเดพเดธเตผเตฝ เดซเต‹เตผเด•เตเด•เตเด•เดณเตเด‚ เด’เดฐเต เดธเดฌเต เดทเต†เดฒเตเดฒเตเด‚ (เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ / bin / sh) เด†เดฐเด‚เดญเดฟเดšเตเดšเต.

เดŽเดฒเตเดฒเดพ เดŸเต‹เด•เตเด•เดฃเตเด•เดณเตเด‚ เด’เดฐเต เดŸเตเดฐเต†เดฏเดฟเดฒเดฟเด‚เด—เต เดธเดนเดฟเดคเด‚ เดธเดฌเต-เดทเต†เดฒเตเดฒเดฟเดจเตเดฑเต† STDIN-เดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต เดชเตเดฑเดคเตเดคเต เด•เดฎเดพเตปเดกเต.

เดธเดฌเต-เดทเต†เตฝ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดฆเดฟ เดนเดพเดธเตผเตฝ เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเต เด…เดจเตเดคเดฟเดฎ เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เตฝ เดจเดŸเดคเตเดคเตเดจเตเดจเต
เดชเดฟเดจเตเดจเต€เดŸเต เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เด‰เดชเดฏเต‡เดพเด•เตเดคเดพเดตเต เดธเตˆเดกเต เด‡เตปเดชเตเดŸเตเดŸเต


เดฆเดฟ เดนเดพเดธเตผเตฝ HTTP_COOKIE เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดตเดดเดฟ เด…เดฏเดšเตเดš เดกเดพเดฑเตเดฑ เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเต เดกเต€เด•เต‹เดกเต เดšเต†เดฏเตเดฏเตเด‚, เด•เต‚เดŸเดพเดคเต†
เด•เตเดฒเดฏเดจเตเดฑเดฟเตฝเดจเดฟเดจเตเดจเตเดณเตเดณ GET เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ POST เดฐเต€เดคเดฟ, เด•เต‚เดŸเดพเดคเต† เด…เดตเดฏเต† เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเดพเดฏเดฟ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเด•
haserl เดตเดดเดฟ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดชเต‡เดฐเดฟเดจเต† เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจเต,
เด’เดฐเต เด‰เดชเดธเตผเด—เตเด—เด‚ เด’เดดเดฟเด•เต† ( FORM_) เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฟเดฏเดคเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด•เตเดฒเดฏเดจเตเดฑเต "foo=bar" เด…เดฏเดฏเตเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ,
เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด†เดฃเต FORM_foo=เดฌเดพเตผ.

HTTP_COOKIE เดฐเต€เดคเดฟเด•เตเด•เดพเดฏเดฟ, เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚ เดชเตเดฐเดฟเดซเดฟเด•เตโ€ŒเดธเดฟเดจเตŠเดชเตเดชเด‚ ( เด•เตเด•เตเด•เดฟ_) เดšเต‡เตผเดคเตเดคเต.
เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, HTTP_COOKIE-เตฝ "foo=bar" เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด†เดฃเต
COOKIE_foo=เดฌเดพเตผ.

GET เดฐเต€เดคเดฟเด•เตเด•เดพเดฏเดฟ, %xx เดŽเดจเตเดจ เดฐเต‚เดชเดคเตเดคเดฟเตฝ เด…เดฏเดšเตเดš เดกเดพเดฑเตเดฑ เด…เดต เดชเตเดฐเดคเต€เด•เด™เตเด™เดณเดพเด•เตเด•เดฟ เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต
เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚ เดชเตเดฐเดฟเดซเดฟเด•เตเดธเดฟเตฝ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต ( เดจเต‡เดŸเตเด•_) เดšเต‡เตผเดคเตเดคเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดŽเด™เตเด•เดฟเตฝ
QUERY_STRING เดŽเดจเตเดจเดคเดฟเตฝ "foo=bar" เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต, เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด†เดฃเต GET_foo=เดฌเดพเตผ.

POST เดฐเต€เดคเดฟเด•เตเด•เดพเดฏเดฟ, เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚ เดชเตเดฐเดฟเดซเดฟเด•เตโ€ŒเดธเดฟเดจเตŠเดชเตเดชเด‚ ( เดชเต‡เดพเดธเตเดฑเตเดฑเต_) เดšเต‡เตผเดคเตเดคเต. เดตเต‡เดฃเตเดŸเดฟ
เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเต‹เดธเตเดฑเตเดฑเต เดธเตเดŸเตเดฐเต€เดฎเดฟเตฝ "foo=bar" เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด†เดฃเต POST_foo=เดฌเดพเตผ.

เด•เต‚เดŸเดพเดคเต†, POST เดฐเต€เดคเดฟเด•เตเด•เต, เดกเดพเดฑเตเดฑ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เด…เดฏเดšเตเดšเดคเต†เด™เตเด•เดฟเตฝ เดฎเตพเดŸเตเดŸเดฟเดชเดพเตผเดŸเตเดŸเต/เดซเต‹เด‚-เดกเดพเดฑเตเดฑ เดŽเตปเด•เต‹เดกเดฟเด‚เด—เต, เดฆเดฟ
เดกเดพเดฑเตเดฑ เดธเตเดตเดฏเดฎเต‡ เดกเต€เด•เต‹เดกเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดตเต†เดฌเดฟเตฝ เดจเดฟเดจเตเดจเต เดซเดฏเดฒเตเด•เตพ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต
เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด•เตเดฒเดฏเดจเตเดฑเต .

เด•เตเดฑเดฟเดชเตเดชเต เดตเต†เดฌเต เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดซเดฏเตฝ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เด…เดคเต เดธเด‚เดญเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚ เด…เดชเตเดฒเต‹เดกเต-เดฆเดฟเดฏเตผ
เดกเดฏเดฑเด•เตเดŸเดฑเดฟ. FORM_variable_name= เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดค เดซเดฏเดฒเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต (เด…เดคเตเดชเต‹เดฒเต†
เด•เตเดฒเดฏเดจเตเดฑเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดคเต.) HASERL_variable_path= เดŽเดจเตเดจเดคเดฟเดฒเต† เดซเดฏเดฒเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
เด…เดชเตเดฒเต‹เดกเต-เดฆเดฟเดฏเตผ เด…เดคเต เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดค เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เด•เตเดทเตเดฆเตเดฐเด•เดฐเดฎเดพเดฏ เด•เตเดฒเดฏเดจเตเดฑเตเด•เดณเต† เดคเดŸเดฏเตเดจเตเดจเดคเดฟเดจเต
เดจเดฟเดฑเดšเตเดšเต เด•เต†เดพเดฃเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เด…เดชเตเดฒเต‹เดกเต-เดฆเดฟเดฏเตผ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเต†เดฌเต เดธเต†เตผเดตเดฑเดฟเตฝ, เดซเดฏเตฝ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เด…เดจเตเดตเดฆเดฟเด•เตเด•เต‚
--เด…เดชเตโ€Œเดฒเต‹เดกเต-เดชเดฐเดฟเดงเดฟ เดŽเดคเตเดฐ เดตเดฒเดฟเดฏ เดซเดฏเตฝ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเตป เด“เดชเตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดนเดพเดธเตผเตฝ
เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเดฎเตเดชเต‹เตพ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดซเดฏเตฝ เดธเตเดตเดฏเดฎเต‡เดต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเต. เดธเต‚เด•เตเดทเดฟเด•เตเด•เดพเตป
เดซเดฏเตฝ, เด…เดคเต เดจเต€เด•เตเด•เตเด• เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเต‡เดฐเตเดฎเดพเดฑเตเดฑเตเด•.

เดซเดฏเดฒเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด• HASERL_เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ_เดชเดพเดคเตเดคเต เด‡เดคเต เด•เดพเดฐเดฃเด‚ FORM_,
GET_, เด•เต‚เดŸเดพเดคเต† POST_ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด•เตเดฒเดฏเดจเตเดฑเดฟเดจเต เดชเดฐเดฟเดทเตโ€Œเด•เตเด•เดฐเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดตเดฏเดพเดฃเต, เด•เตเดทเตเดฆเตเดฐเด•เดฐเดฎเดพเดฏ เด’เดฐเต เด•เตเดฒเดฏเดจเตเดฑเดฟเดจเต เด•เดดเดฟเดฏเตเด‚
เดชเต‡เดฐเดฟเดจเตŠเดชเตเดชเด‚ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด• เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ_เดชเดพเดคเตเดคเต=/ etc / passwd. เดฎเตเตป เดชเดคเดฟเดชเตเดชเตเด•เตพ
เดชเดพเดคเตเดคเตโ€Œเดธเตเดชเต†เด•เตเด•เต เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฒเตเดฒ HASERL เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต. เดฒเต‡เด•เตเด•เต เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเด• เดชเดฟเดจเตเดจเดฟเดฒเต‡เด•เตเด•เต
เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตฝ, The เดชเต‡เดฐเต of The เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เด‚ เดซเดฏเดฒเต is เด‡เดคเตเด‚ เดธเด‚เดญเดฐเดฟเดšเตเดšเต in FORM_variable= เด’เดชเตเดชเด‚
POST_variable=. เดˆ is เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเดจเตเดจเต เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดฒเตเดฒเดพเดคเตเดคเดคเต เด’เดชเตเดชเด‚ เดตเต‡เดฃเด‚ เด…เดฒเตเดฒ be เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต.

เด•เตเดฒเดฏเดจเตเดฑเต เดกเดพเดฑเตเดฑ เด…เดฏเดฏเตเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดฐเดฃเตเดŸเตเด‚ POST, GET เดฐเต€เดคเดฟเด•เตพ เดตเดดเดฟ, เดคเตเดŸเตผเดจเตเดจเต เดนเดพเดธเตผเตฝ เดฎเดพเดคเตเดฐเด‚ เดชเดพเดดเตเดธเต เดšเต†เดฏเตเดฏเตเด‚
เดŽเดจเตเดจเดคเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจ เดกเดพเดฑเตเดฑ REQUEST_METHOD เดตเต†เดฌเต เดธเต†เตผเดตเตผ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดš เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ, เด’เดดเดฟเด•เต†
เดŽเดฒเตเดฒเดพเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด• เด“เดชเตเดทเตป เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟ. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, POST เดฐเต€เดคเดฟ เดตเดดเดฟ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดซเต‹เด‚, เดŽเดจเตเดจเดพเตฝ เด‰เดณเตเดณเดคเต
เดšเดฟเดฒเดคเดฟเดจเตเดฑเต† URI.cgi?foo=bar&otherdata=เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ POST เดกเดพเดฑเตเดฑ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเด‚, เด•เต‚เดŸเดพเดคเต† เดซเต‚
เด’เดชเตเดชเด‚ เดฎเดฑเตเดฑเต เดกเดพเดฑเตเดฑ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด…เดตเด—เดฃเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต.

เดตเต†เดฌเต เดธเต†เตผเดตเตผ เดจเดฟเตผเดตเตเดตเดšเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ a HTTP_COOKIE เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ, เด•เตเด•เตเด•เดฟ เดกเดพเดฑเตเดฑ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตโ€Œเดคเต.
เด•เตเด•เตเด•เดฟ เดกเดพเดฑเตเดฑ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตโ€Œเดคเต เดฎเตเดฎเตเดชเต GET เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ POST เดกเดพเดฑเตเดฑ, เด…เดคเดฟเดจเดพเตฝ เดฐเดฃเตเดŸเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด‰เดฃเตเดŸเดพเดฏเดพเตฝ
เด…เดคเต‡ เดชเต‡เดฐเต, GET เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ POST เดกเดพเดฑเตเดฑ เด•เตเด•เตเด•เดฟ เดตเดฟเดตเดฐเด™เตเด™เตพ เดชเตเดจเดฐเดพเดฒเต‡เด–เดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด’เดฐเต‡ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดธเด‚เดญเดตเด™เตเด™เตพ เดตเตเดฏเดคเตเดฏเดธเตเดค เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดฎเตเดชเต‹เตพ, the
เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด•เตเดฐเดฎเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต FORM_variable เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด‚.
HTTP_COOKIE เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เด†เดฆเตเดฏเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต REQUEST_METHOD. เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ-เดŽเดฒเตเดฒเดพเด‚
เด“เดชเตโ€Œเดทเตป เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟ, เดคเตเดŸเตผเดจเตเดจเต HTTP_COOKIE เด†เดฆเตเดฏเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เด…เดฒเตเดฒ เดŽเดจเตเดจ เดฐเต€เดคเดฟ
REQUEST_METHOD เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต REQUEST_METHOD. เดฏเตเดŸเต† เด…เดตเดธเดพเดจ เด‰เดฆเดพเดนเดฐเดฃเด‚
FORM_variable เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚. เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚ เดตเต†เดตเตเดตเต‡เดฑเต†เดฏเดพเดฃเต†เดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•
COOKIE_variable, GET_variable, POST_variable เดŽเดจเตเดจเดฟเด™เตเด™เดจเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต
เด“เดฐเต‹ เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เด“เดตเตผเดฒเดพเดชเตเดชเตเดšเต†เดฏเตเดฏเตเดจเตเดจ เดชเต‡เดฐเตเด•เตพ.

เด’เดฐเต‡ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดธเด‚เดญเดตเด™เตเด™เตพ เด’เดฐเต‡ เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดฏเดฏเตเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด…เดตเดธเดพเดจเดคเตเดคเต‡เดคเต เดฎเดพเดคเตเดฐเด‚
เด’เดฐเดพเตพ เดฐเด•เตเดทเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเต. เดŽเดฒเตเดฒเดพ เดชเด•เตผเดชเตเดชเตเด•เดณเตเด‚ เดธเต‚เด•เตเดทเดฟเด•เตเด•เดพเตป (เดฎเตพเดŸเตเดŸเดฟ-เดธเต†เดฒเด•เตเดŸเตเด•เตพเด•เตเด•เดพเดฏเดฟ, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต), เด…เดตเดธเดพเดจเด‚ เดตเดฐเต† "[]" เดšเต‡เตผเด•เตเด•เตเด•
เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเดพเดฎเดคเตเดคเดฟเดจเตเดฑเต†. เดŽเดฒเตเดฒเดพ เดซเดฒเด™เตเด™เดณเตเด‚ เดชเตเดคเดฟเดฏ เดฒเตˆเดจเตเด•เดณเดพเตฝ เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต,
host=Enoch&host=Esther&host=เดœเต‹เดทเตเดต เดซเดฒเด‚ "FORM_host=Joshua".
host[]=Enoch&host[]Esther&host[]=เดœเต‹เดทเตเดต เดซเดฒเด‚ "FORM_host=Enoch\nEsther\nJoshua"

LANGUAGE เดŽเดจเตเดจ


เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดญเดพเดทเดพ เด˜เดŸเดจเด•เตพ เด…เด‚เด—เต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดนเดพเดธเตผเตฝ.

RUN
<% [เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต] %>

<% %> เดŸเดพเด—เตเด•เดณเดพเตฝ เดšเตเดฑเตเดฑเดชเตเดชเต†เดŸเตเดŸ เดŽเดจเตเดคเตเด‚ เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดธเดฌเต-เดทเต†เดฒเตเดฒเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตเด‚. เดตเดพเดšเด•เด‚
เด…เด•เตเดทเดฐเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด…เดฏเด•เตเด•เตเดจเตเดจเต.

เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต
<%เดชเดพเดคเตเดคเตเดธเตเดชเต†เด•เตเด•เดฟเตฝ %>

เดˆ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เดฎเดฑเตเดฑเตŠเดฐเต เดซเดฏเตฝ เดชเดฆเดพเดจเตเดชเดฆเดฎเดพเดฏเดฟ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•. เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดซเดฏเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต
เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

EVAL
<%= เดŽเด•เตเดธเตเดชเตเดฐเดทเตป %>

เดทเต†เตฝ เดŽเด•เตเดธเตเดชเตเดฐเดทเตป เดชเตเดฐเดฟเดจเตเดฑเต เดšเต†เดฏเตเดฏเตเด•. "echo expr" เดŽเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเดพเด•เตเดฏเด˜เดŸเดจ เดชเดžเตเดšเดธเดพเดฐ.

เดตเดฟเดงเด‚
<%# เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ %>

เด•เดฎเดจเตเดฑเต เดฌเตเดฒเต‹เด•เตเด•เต. เด’เดฐเต เด•เดฎเดจเตเดฑเต เดฌเตเดฒเต‹เด•เตเด•เดฟเดฒเต† เด’เดจเตเดจเตเด‚ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตโ€ŒเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เตพ เดจเต†เดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเด‚
เด•เต‚เดŸเดพเดคเต† เดฎเดฑเตเดฑเต เดนเดพเดธเต†เตผเตฝ เด˜เดŸเด•เด™เตเด™เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚.

เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ


เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต
เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดนเดพเดธเตผเตฝ. เดจเดฟเด™เตเด™เตพ เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚
เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เด…เดŸเดฟเดธเตเดฅเดพเดจ เดตเต†เดฌเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต เดธเตเดฐเด•เตเดท เดชเดฐเดฟเดšเดฟเดคเดฎเดพเดฃเต เดนเดพเดธเตผเตฝ (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต
เดญเดพเดท) เด’เดฐเต เด‰เตฝเดชเดพเดฆเดจ เด…เดจเตเดคเดฐเต€เด•เตเดทเดคเตเดคเดฟเตฝ.

เดฒเด˜เตเดตเดพเดฏ เด•เดฎเดพเตปเดกเต
#!/usr/local/bin/haserl
เด‰เดณเตเดณเดŸเด•เตเด•-เดคเดฐเด‚: เดŸเต†เด•เตเดธเตเดฑเตเดฑเต/เดชเตเดฒเต†เดฏเดฟเตป

<%# เด‡เดคเตŠเดฐเต เดธเดพเดฎเตเดชเดฟเตพ "env" เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด†เดฃเต %>
<% env %>

เดฏเตเดŸเต† เดซเดฒเด™เตเด™เตพ เด…เดšเตเดšเดŸเดฟเด•เตเด•เตเดจเตเดจเต เด…เดฏเด•เตเด•เตเด• เด’เดฐเต mime-type "text/plain" เดชเตเดฐเดฎเดพเดฃเดฎเดพเดฏเดฟ เด•เดฎเดพเตปเดกเต เดšเต†เดฏเตเดฏเตเด•. เด‡เดคเดพเดฃเต
The เดนเดพเดธเตผเตฝ เดชเตŠเดคเตเดตเดพเดฏ เดชเดคเดฟเดชเตเดชเต เดชเตเดฐเดฟเดจเตเดฑเตปเดตเดฟ cgi

เดตเต€เดฃเตเดŸเตเด‚ เดฒเต‹เดชเตเดชเดฟเด‚เด—เต เด•เต‚เดŸเต† เดšเดฒเดจเดพเดคเตเดฎเด•เด‚ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต
#!/usr/local/bin/haserl
เด‰เดณเตเดณเดŸเด•เตเด• เดคเดฐเด‚: เดตเดพเดšเด•เด‚/html




<% เด’เดฐเต เดšเตเดตเดจเตเดจ เดจเต€เดฒ เดฎเดžเตเดž เดธเดฟเดฏเดพเตป; %> เดšเต†เดฏเตเดฏเตเด•
"><% echo -n "$a" %>
<% เดšเต†เดฏเตเดคเต %>




เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เด’เดฐเต html เดชเดŸเตเดŸเดฟเด• เดธเดนเดฟเดคเด‚ เด’เดฐเต เดฎเตˆเด‚-เดŸเตˆเดชเตเดชเต "เดŸเต†เด•เตโ€Œเดธเตเดฑเตเดฑเต/html" เดชเตเดฐเดฎเดพเดฃเด‚ เด•เตเดฒเดฏเดจเตเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต.
เดชเดถเตเดšเดพเดคเตเดคเดฒ เดตเตผเดฃเตเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฒเต‡เดฌเตฝ เดšเต†เดฏเตเดค เด˜เดŸเด•เด™เตเด™เตพ.

เด‰เดชเดฏเต‡เดพเด—เด‚ เดทเต†เตฝ เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ.
#!/usr/local/bin/haserl
เด‰เดณเตเดณเดŸเด•เตเด• เดคเดฐเด‚: เดตเดพเดšเด•เด‚/html

<% # เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดจเดฟเตผเดตเตเดตเดšเดฟเด•เตเด•เตเด•
table_element() {
เดชเตเดฐเดคเดฟเดงเตเดตเดจเดฟ " $1 "
}
%>



<% เด’เดฐเต เดšเตเดตเดจเตเดจ เดจเต€เดฒ เดฎเดžเตเดž เดธเดฟเดฏเดพเตป; %> เดšเต†เดฏเตเดฏเตเด•
<% table_element $a %>
<% เดšเต†เดฏเตเดคเต %>




เดฎเตเด•เดณเดฟเตฝ เดชเดฑเดžเตเดžเดคเตเดชเต‹เดฒเต† เดคเดจเตเดจเต†, เดŽเดจเตเดจเดพเตฝ เดŽเด‚เดฌเดกเดกเต html-เดจเต เดชเด•เดฐเด‚ เด’เดฐเต เดทเต†เตฝ เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เดธเตเดตเดฏเด‚ เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เตเดจเตเดจเต CGI เด•เต‚เดŸเต† a เดฐเต‚เดชเด‚
#!/usr/local/bin/haserl
เด‰เดณเตเดณเดŸเด•เตเด• เดคเดฐเด‚: เดตเดพเดšเด•เด‚/html


เดฎเดพเดคเตƒเด•เดพ เดซเต‹เด‚
" method="GET">
<% # FORM_textfield-เดจเตเดฑเต† เดšเดฟเดฒ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดจเดŸเดคเตเดคเตเด•
# เดธเดพเดงเดพเดฐเดฃ เดตเต†เดฌเต เด†เด•เตเดฐเดฎเดฃเด™เตเด™เตพ เดคเดŸเดฏเดพเตป
FORM_textfield=$( echo "$FORM_textfield" | sed "s/[^A-Za-z0-9 ]//g" )
%>
<เด‡เตปเดชเตเดŸเตเดŸเต เดคเดฐเด‚=เดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเต เดจเดพเดฎเด‚=เดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเตเดซเต€เตฝเดกเต
Value="<% echo -n "$FORM_textfield" | tr az AZ %>" cols=20>




เด’เดฐเต เดซเต‹เด‚ เดชเตเดฐเดฟเดจเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด•เตเดฒเดฏเดจเตเดฑเต เดซเต‹เดฎเดฟเตฝ เดตเดพเดšเด•เด‚ เดจเตฝเด•เดฟเดฏเดพเตฝ, CGI เดตเต€เดฃเตเดŸเตเด‚ เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚ (เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต
by $SCRIPT_NAME) เด•เต‚เดŸเดพเดคเต† เดตเต†เดฌเต เด†เด•เตเดฐเดฎเดฃเด™เตเด™เตพ เดคเดŸเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดŸเต†เด•เตเดธเตเดฑเตเดฑเตเดซเต€เตฝเดกเต เด…เดฃเตเดตเดฟเดฎเตเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต
เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดจเตฝเด•เดฟเดฏ เดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดซเต‹เด‚ เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดตเดพเดšเด•เด‚ เดตเดฒเดฟเดฏเด•เตเดทเดฐเดคเตเดคเดฟเดฒเดพเดฃเต.

เด…เดชเตโ€Œเดฒเต‹เดกเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต a เดซเดฏเดฒเต
#!/usr/local/bin/haserl --upload-limit=4096 --upload-dir=/ tmp
เด‰เดณเตเดณเดŸเด•เตเด• เดคเดฐเด‚: เดตเดพเดšเด•เด‚/html


" method=POST enctype="multipart/form-data" >



<% if test -n "$HASERL_uploadfile_path"; เดคเตเดŸเตผเดจเตเดจเต %>

เดจเดฟเด™เตเด™เตพ <% echo -n $FORM_uploadfile_name %> เดŽเดจเตเดจ เดชเต‡เดฐเดฟเตฝ เด’เดฐเต เดซเดฏเตฝ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดคเต, เด…เดคเต
. เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดธเต†เตผเดตเดฑเดฟเตฝ เด†เดฏเดฟ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดฆเดฟ
เดซเดฏเตฝ <% cat $HASERL_uploadfile_path | เด†เดฏเดฟเดฐเตเดจเตเดจเต wc -c %> เดฌเตˆเดฑเตเดฑเตเด•เตพ เดจเต€เดณเด‚.
<% rm -f $HASERL_uploadfile_path %> เดตเดฟเดทเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸ, เดซเดฏเตฝ เด‡เดชเตเดชเต‹เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟ
เดตเต†เดฌเต เดธเต†เตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต.
<% เดตเต‡เดฑเต† %>
เดจเดฟเด™เตเด™เตพ เด‡เดคเตเดตเดฐเต† เด’เดฐเต เดซเดฏเตฝ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตโ€ŒเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ.
<% fi %>



เดซเดฏเตฝ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดซเต‹เด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เด‡เดคเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต
--เด…เดชเตโ€Œเดฒเต‹เดกเต-เดชเดฐเดฟเดงเดฟ เดซเต‹เด‚ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†เดฏเตเด‚ เดŽเตปเด•เตโ€ŒเดŸเตˆเดชเตเดชเต เดฒเต‡เด•เตเด•เต เดฎเตพเดŸเตเดŸเดฟเดชเดพเตผเดŸเตเดŸเต/เดซเต‹เด‚-เดกเดพเดฑเตเดฑ. เดŽเด™เตเด•เดฟเดฒเต
เด•เตเดฒเดฏเดจเตเดฑเต เด’เดฐเต เดซเดฏเตฝ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เดซเดฏเดฒเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดšเดฟเดฒ เดตเดฟเดตเดฐเด™เตเด™เตพ เด…เดšเตเดšเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต
เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟ. เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด•เตเดฒเดฏเดจเตเดฑเต เด’เดฐเต เดซเดฏเตฝ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เดจเตเดจเต เดซเต‹เด‚ เดชเดฑเดฏเตเดจเตเดจเต.

เด†เตผเดŽเดซเตเดธเดฟ -2616 เด…เดจเตเดฐเต‚เดชเต€เด•เดฐเดฃเด‚
#!/usr/local/bin/haserl
<% echo -en "content-type: text/html\r\n\r\n" %>

...


เดŽเดšเตเดšเตเดŸเดฟเดŸเดฟเดชเดฟ เดธเตเดชเต†เดธเดฟเดซเดฟเด•เตเด•เต‡เดทเตป เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เด…เดจเตเดธเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดคเดฒเด•เตเด•เต†เดŸเตเดŸเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เดฃเด‚
เดธเดพเดงเดพเดฐเดฃ unix LF เดฒเตˆเตป เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดชเด•เดฐเด‚ CR+LF. เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดตเดพเด•เตเดฏเด˜เดŸเดจเดฏเตเด•เตเด•เต เด•เดดเดฟเดฏเตเด‚
RFC 2616 เด•เด‚เดชเตเดฒเดฏเดฟเดจเตเดฑเต เดนเต†เดกเดฑเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

ENVIRONMENT


เดตเต†เดฌเต เดธเต†เตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดพเดฐเดฎเตเดชเดฐเตเดฏเดฎเดพเดฏเดฟ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพเด•เตเด•เต เดชเตเดฑเดฎเต‡, เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดตเดฏเตเด‚
เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดŽเดชเตเดชเต‹เดดเตเด‚ เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเดฟเตฝ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต:

เดนเดพเดธเตผเตพเดตเตผ
เดนเดพเดธเตผเตฝ เดชเดคเดฟเดชเตเดชเต - เด’เดฐเต เดตเดฟเดตเดฐ เดŸเดพเด—เต.

เดธเต†เดทเตป เดเดกเดฟ
CGI-เดฏเตเดŸเต† เดœเต€เดตเดฟเดคเดคเตเดคเดฟเดจเต เดธเดตเดฟเดถเต‡เดทเดฎเดพเดฏ เด’เดฐเต เดนเต†เด•เตโ€Œเดธเดพเดกเต†เดธเดฟเดฎเตฝ เดŸเดพเด—เต (เด…เดคเต เดœเดจเดฑเต‡เดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ
cgi เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต; เดฎเดฑเตเดฑเตŠเดฐเต POST เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ GET เด…เดจเตเดตเต‡เดทเดฃเด‚ เด‰เดฃเตเดŸเดพเด•เตเดจเตเดจเดคเต เดตเดฐเต† เดฎเดพเดฑเดฟเดฒเตเดฒ.)

HASERL_ACCEPT_ALL
เดŽเด™เตเด•เดฟเดฒเต --เดŽเดฒเตเดฒเดพเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด• เดชเดคเดพเด• เดธเตเดฅเดพเดชเดฟเดšเตเดšเต, -1, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 0.

HASERL_SHELL
เดทเต†เตฝ เดนเดพเดธเตผเดฒเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เดธเดฌเต-เดทเต†เตฝ เด•เดฎเดพเตปเดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ.

HASERL_UPLOAD_DIR
เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดค เดซเดฏเดฒเตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดนเดพเดธเต†เตผเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

HASERL_UPLOAD_LIMIT
เด•เตเดฒเดฏเดจเตเดฑเดฟเตฝเดจเดฟเดจเตเดจเต เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตโ€Œเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เต†เดฌเดฟเดฏเตเดŸเต† เดŽเดฃเตเดฃเด‚.

เดˆ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดคเดจเตเดจเต† เดชเดฐเดฟเดทเตเด•เตเด•เดฐเดฟเด•เตเด•เตเด•เดฏเต‹ เดคเดฟเดฐเตเดคเตเดคเดฟเดฏเต†เดดเตเดคเตเด•เดฏเต‹ เดšเต†เดฏเตเดฏเดพเด‚
"HASERL_" เดŽเดจเตเดจเดคเดฟเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดฟเดตเดฐเดฆเดพเดฏเด•เดฎเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเต† เดฌเดพเดงเดฟเด•เตเด•เดฟเดฒเตเดฒ.

เดธเตเดฐเด•เตเดทเดฟเดคเดคเตเดตเด‚ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ


CGI เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดšเต†เดฏเตเดฏเดพเตป เดทเต†เตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด…เดชเด•เดŸเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดงเดพเดฐเดพเดณเด‚ เดธเดพเดนเดฟเดคเตเดฏเด™เตเด™เดณเตเดฃเตเดŸเต.
เดนเดพเดธเตผเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เด•เตเดฑเต† เดˆ เด…เดชเด•เดŸเดธเดพเดงเตเดฏเดค เดฒเด˜เต‚เด•เดฐเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดธเด‚เดฐเด•เตเดทเดฃเด‚.

เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ
เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เดชเต‹เดชเตเดชเตเดฒเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เต‹เดกเต เด‰เดช-เดฏเตเดŸเต† เดชเดฐเดฟเดงเดฟเด•เตเด•เต เดชเตเดฑเดคเตเดคเดพเดฃเต
เดทเต†เตฝ. เด‡เดคเต เด•เดฅเดพเดชเดพเดคเตเดฐเด™เตเด™เดณเต† เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเตเดฃเตเดŸเต‹? เด•เต‚เดŸเดพเดคเต† &, เด…เดคเดฟเดจเดพเตฝ เด’เดฐเต เด•เตเดฒเดฏเดจเตเดฑเดฟเดจเต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เดชเตเดฐเดฏเดพเดธเดฎเดพเดฃเต
"เด‡เดžเตเดšเด•เตเดทเตป" เด†เด•เตเดฐเดฎเดฃเด™เตเด™เตพ. เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดŽเดจเตเดจ เดจเดฟเดฒเด•เตเด•เต, foo.cgi?a=test;cat / etc / passwd เด•เดพเดฐเดฃเดฎเดพเด•เดพเด‚
เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต เดฎเต‚เดฒเตเดฏเด‚ เดจเตฝเด•เตเดจเตเดจเต เดชเดฐเดฟเดถเต‡เดพเดงเดจ เดคเตเดŸเตผเดจเตเดจเต เด“เดŸเตเดŸเดคเตเดคเดฟเดจเตเดฑเต† เดซเดฒเด™เตเด™เตพ เดชเต‚เดšเตเดš
/ etc / passwd เด•เตเดฒเดฏเดจเตเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต. เดนเดพเดธเตผเตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดจเดฟเดฏเต‹เด—เดฟเด•เตเด•เตเด‚
เดฎเต‚เดฒเตเดฏเด‚: เดŸเต†เดธเตเดฑเตเดฑเต;เดชเต‚เดšเตเดš / etc / passwd

เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเดฟเตฝ เดˆ "เด…เดชเด•เดŸเด•เดฐเดฎเดพเดฏ" เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฃเต
เด‰เดฆเตเดงเดฐเดฃเดฟเด•เตพ; เดŽเดฒเตเดฒเดพ เด‡เตปเดชเตเดŸเตเดŸเต เดซเต€เตฝเดกเตเด•เดณเดฟเดฒเตเด‚ เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดจเดŸเดคเตเดคเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚.

เดชเตเดฐเดฟเดตเดฟเดฒเต‡เดœเต เด‰เดชเต‡เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต
เด’เดฐเต เดธเต‚เดฏเดฟเดกเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดพเดฏเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดนเดพเดธเตผเตฝ เด…เดคเดฟเดจเตเดฑเต† uid/gid เด‰เดŸเดฎเดฏเตเดŸเต‡เดคเดพเดฏเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด‚
เดคเดฟเดฐเด•เตเด•เดฅ. เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ CGI เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเตป เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚
เดชเดฆเดตเดฟ. เดŽเด™เตเด•เดฟเตฝ เดนเดพเดธเตผเตฝ เดฌเตˆเดจเดฑเดฟ suid เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ, เด…เดชเตเดชเต‹เตพ CGI เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดšเต†เดฏเตเดฏเตเด‚
เดตเต†เดฌเต เดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† uid/gid เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•.

เดจเดฟเดฐเดธเดฟเด•เตเด•เตเด• เด•เดฎเดพเตปเดกเต เดตเดฐ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดจเตฝเด•เดชเตเดชเต†เดŸเตเดŸ on The เดฏเตเด†เตผเดŽเตฝ
URL-เตฝ เดŽเตปเด•เต‹เดกเต เดšเต†เดฏเตเดฏเดพเดคเตเดค "=" เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, CGI เดธเตเดชเต†เดธเดฟเดซเดฟเด•เตเด•เต‡เดทเตป เด“เดชเตเดทเดจเตเด•เตพ เดชเตเดฐเดธเตเดคเดพเดตเดฟเด•เตเด•เตเดจเตเดจเต
เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดจเตเดฑเต† เด•เดฎเดพเตปเดกเต-เดฒเตˆเตป เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด…เดจเตเดธเดฐเดฟเดšเตเดšเต
CGI เดธเตเดชเต†เดธเดฟเดซเดฟเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต: http://192.168.0.1/test.cgi?--upload-limit%3d2000&foo%3dbar
"Foo=bar" เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเตเดฑเดฎเต‡ เด…เดชเตโ€Œเดฒเต‹เดกเต-เดชเดฐเดฟเดงเดฟ 2000KB เด†เดฏเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดฃเด‚. เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เดพเตป
เด•เตเดฒเดฏเดจเตเดฑเตเด•เตพ เด…เดตเดฐเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด…เดชเตโ€Œเดฒเต‹เดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เดคเดฟเดฐเต†, เดนเดพเดธเตผเตฝ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เดฎเดพเตปเดกเต-เดฒเตˆเตป เด“เดชเตเดทเดจเตเด•เตพ เดจเดฟเดฐเดธเดฟเด•เตเด•เตเดจเตเดจเต
เด†เตผเดœเดฟเดตเดฟเด•เตเด•เต เด…เดชเตเดชเตเดฑเด‚[2]. # เด†เดฏเดฟ เดตเดฟเดณเดฟเดšเตเดšเดพเตฝ! เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต, เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเต argv[0] เด†เดฃเต, เดŽเดฒเตเดฒเดพเด‚
#-เตฝ เดฒเดฟเดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เดฎเดพเตปเดกเต-เดฒเตˆเตป เด“เดชเตเดทเดจเตเด•เตพ! เดตเดฐเดฟเด•เตพ argv[1] เด†เดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเต‡เดฐเต argv[2].

เดฒเตเด…


lua เดชเดฟเดจเตเดคเตเดฃเดฏเต‹เดŸเต† เดธเดฎเดพเดนเดฐเดฟเดšเตเดšเดพเตฝ, --shell=lua เดชเด•เดฐเด‚ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดญเดพเดทเดฏเดพเดฏเดฟ lua เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด‚
เดฌเดพเดทเต เดทเต†เดฒเตเดฒเดฟเดจเตเดฑเต†. เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ (SCRIPT_NAME, SERVER_NAME, เดฎเตเดคเดฒเดพเดฏเดต) เดธเตเดฅเดพเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต
ENV เดชเดŸเตเดŸเดฟเด•เดฏเตเด‚ เดซเต‹เด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚ เดซเต‹เด‚ เดŸเต‡เดฌเดฟเดณเดฟเตฝ เดธเตเดฅเดพเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฆเดฟ
เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดธเตเดตเดฏเด‚ เดฑเดซเดฑเตปเดธเดฟเด‚เด—เต เดซเต‹เด‚ เด‡เดคเตเดชเต‹เดฒเต† เดŽเดดเตเดคเดพเด‚:

#!/usr/local/bin/haserl --shell=lua
เด‰เดณเตเดณเดŸเด•เตเด• เดคเดฐเด‚: เดตเดพเดšเด•เด‚/html


เดฎเดพเดคเตƒเด•เดพ เดซเต‹เด‚
" เดฐเต€เดคเดฟ="GET">
<% # FORM_textfield-เดจเตเดฑเต† เดšเดฟเดฒ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดจเดŸเดคเตเดคเตเด•
# เดธเดพเดงเดพเดฐเดฃ เดตเต†เดฌเต เด†เด•เตเดฐเดฎเดฃเด™เตเด™เตพ เดคเดŸเดฏเดพเตป
FORM.textfield=string.gsub(FORM.textfield, "[^%a%d]", "")
%>
<เด‡เตปเดชเตเดŸเตเดŸเต เดคเดฐเด‚=เดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเต เดจเดพเดฎเด‚=เดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเตเดซเต€เตฝเดกเต
เดฎเต‚เดฒเตเดฏเด‚="<% io.write (string.upper(FORM.textfield)) %>" cols=20>




<%= เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดธเดฟเดจเตเดฑเดพเด•เตโ€Œเดฑเตเดฑเดฟเด•เต เดทเตเด—เตผ เด†เดฃเต io.write (เดŸเต‹เดธเตเดŸเตเดฐเดฟเด‚เด—เต( ... )) เด…เดคเดฟเดจเดพเตฝ, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฆเดฟ
เดฎเต‚เดฒเตเดฏเด‚= เดฎเตเด•เดณเดฟเดฒเต† เดตเดฐเดฟ เดŽเดดเตเดคเดพเด‚: เดฎเต‚เดฒเตเดฏเด‚="<%= string.upper(FORM.textfield) %>" เด•เต‹เดณเตเด•เตพ=20>

haserl lua เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพเด•เตเด•เต เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ haserl.loadfile(เดซเดฏเดฒเดฟเดจเตเดฑเต† เดชเต‡เดฐเต) เด’เดฐเต เดฒเด•เตเดทเตเดฏเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดพเตป
เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด’เดฐเต เดนเดพเดธเต†เตผเตฝ (เดฒเตเดตเดพ) เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดพเดฏเดฟ. เดซเด‚เด—เตเดทเตป เด’เดฐเต เดคเดฐเด‚ "เดซเด‚เด—เตเดทเตป" เดจเตฝเด•เตเดจเตเดจเต.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต,

bar.lsp
<% io.write ("เดนเดฒเต‹ เดตเต‡เตพเดกเต" ) %>

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเดจเตเดฆเต‡เดถเด‚ <%= gvar %> เด†เดฃเต

-- เดซเดฏเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเด‚ --

foo.haserl
#!/usr/local/bin/haserl --shell=lua
<% m = haserl.loadfile("bar.lsp")
gvar = "m() เด†เดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•"
m ()

gvar = "เด’เดฐเต เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดฒเต‹เดกเตเดšเต†เดฏเตเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•"
haserl.loadfile("bar.lsp")()
%>

เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดซเต‚ เด‰เตฝเดชเตเดชเดพเดฆเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚:

เดนเดฒเต‹ เดตเต‡เตพเดกเต
m() เด†เดฏเดฟ เดฑเตบ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเดจเตเดฆเต‡เดถเด‚
-- เดซเดฏเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเด‚ --
เดนเดฒเต‹ เดตเต‡เตพเดกเต
เด’เดฐเต เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดฒเต‹เดกเตเดšเต†เดฏเตเดคเต เดฑเตบ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเดจเตเดฆเต‡เดถเด‚
-- เดซเดฏเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเด‚ --

เดˆ เดซเด‚เด—เตโ€Œเดทเตป เดจเต†เดธเตเดฑเตเดฑเดกเต เดนเดพเดธเต†เตผเตพ เดธเต†เตผเดตเตผ เดชเต‡เดœเตเด•เตพ - เดชเต‡เดœเต เดธเตโ€Œเดจเดฟเดชเตเดชเต†เดฑเตเดฑเตเด•เตพ เดธเดพเดงเตเดฏเดฎเดพเด•เตเด•เตเดจเตเดจเต
เดนเดพเดธเตผเตฝ เดŸเต‹เด•เตเด•เดฃเตˆเดธเตผ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดต.

LUAC


เดฆเดฟ luac "เดทเต†เตฝ" เดŽเดจเตเดจเดคเต เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฟเดฏ เดฒเตเดตเดพ เดšเด™เตเด•เต เด†เดฃเต, เด…เดคเดฟเดจเดพเตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเตเดŸเต† เดธเด‚เดตเต‡เดฆเดจเดพเดคเตเดฎเด• เดŽเดกเดฟเดฑเตเดฑเดฟเด‚เด—เตเด‚ เดชเดฐเดฟเดถเต‹เดงเดจเดฏเตเด‚
เดธเดพเดงเตเดฏเดฎเดฒเตเดฒ. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, luac เดชเดฟเดจเตเดคเตเดฃเดฏเต‹เดŸเต† เดฎเดพเดคเตเดฐเดฎเต‡ เดนเดธเต†เตผเตพ เดธเดฎเดพเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚, เด‡เดคเต เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต
เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดฎเต†เดฎเตเดฎเดฑเดฟ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดชเต‹เดฒเตเด‚ lua เดชเดฟเดจเตเดคเตเดฃ. เดฎเตเด•เดณเดฟเตฝ เดฒเดฟเดธเตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดนเดธเต‡เตผเตพ เดฒเตเดต เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเตเด‚
เด‡เดชเตเดชเต‡เดพเดดเตเด‚ เดฒเดญเตเดฏเดฎเดพเดฃเต. (haserl-เตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เด’เดฐเต‡เดฏเตŠเดฐเต เดทเต†เตฝ luac เด†เดฃเต†เด™เตเด•เดฟเตฝ, haserl.loadfile เด†เดฃเต
เดนเดพเดธเตผเตฝ เดชเดพเตผเดธเตผ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเดพเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดฟ.)

เด’เดฐเต luac cgi เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดค เด’เดฐเต เดจเดฟเดธเตเดธเดพเดฐ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเตเดฑเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เดคเดพ:

เดซเดฏเตฝ test.lua เดจเตฝเด•เดฟ:
เดชเตเดฐเดฟเดจเตเดฑเต ("เด‰เดณเตเดณเดŸเด•เตเด•-เดคเดฐเด‚: เดตเดพเดšเด•เด‚/เดชเตเดฒเต†เดฏเดฟเตป0)
เดชเตเดฐเดฟเดจเตเดฑเต ("เดˆ เด“เดŸเตเดŸเดคเตเดคเดฟเดจเตเดณเตเดณ เดจเดฟเด™เตเด™เดณเตเดŸเต† UUID เด‡เดคเดพเดฃเต: " .. ENV.SESSIONID)

เด‡เดคเต luac เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดฎเดพเดนเดฐเดฟเด•เตเด•เดพเด‚:
luac -o test.luac -s test.lua

เดคเตเดŸเตผเดจเตเดจเต เดนเดพเดธเตผเตฝ เดคเดฒเด•เตเด•เต†เดŸเตเดŸเต เด‡เดคเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเดคเตเดคเต:
เดŽเด•เตเด•เต‹ '#!/usr/bin/haserl --shell=luac' | cat - test.luac >luac.cgi

เดชเด•เดฐเดฎเดพเดฏเดฟ, เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดฒเตเดตเดพ เดทเต†เตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดฎเตเดดเตเดตเตป เดตเต†เดฌเตโ€Œเดธเตˆเดฑเตเดฑเตเด‚ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚,
เดคเตเดŸเตผเดจเตเดจเต a เดฏเตเดŸเต† เดญเดพเด—เดฎเดพเดฏเดฟ luac เด•เด‚เดชเตˆเดฒเดฑเดฟเดจเดพเดฏเตเดณเตเดณ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ haserl เดคเดจเตเดจเต† เดชเตเดฐเต€เดชเตเดฐเต‹เดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเด•
เดจเดฟเตผเดฎเตเดฎเดพเดฃ เดชเตเดฐเด•เตเดฐเดฟเดฏ. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, --shell=lua เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•, เดตเต†เดฌเตเดธเตˆเดฑเตเดฑเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเด•. เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดคเดฏเตเดฏเดพเดฑเดพเด•เตเดฎเตเดชเต‹เตพ
เดฑเตบเดŸเตˆเด‚ เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต, เดจเดฟเด™เตเด™เดณเตเดŸเต† lua เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต --debug เดฒเตˆเตป เดšเต‡เตผเด•เตเด•เตเด•, เด…เดต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•
เดซเดฒเด™เตเด™เตพ .lua เด‰เดฑเดตเดฟเดŸ เดซเดฏเดฒเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต:

haserl script test.cgi เดจเตฝเด•เดฟเดฏเดคเต:
#!/usr/bin/haserl --shell=lua --debug
เด‰เดณเตเดณเดŸเด•เตเด•-เดคเดฐเด‚: เดŸเต†เด•เตเดธเตเดฑเตเดฑเต/เดชเตเดฒเต†เดฏเดฟเตป

เดˆ เด“เดŸเตเดŸเดคเตเดคเดฟเดจเตเดณเตเดณ เดจเดฟเด™เตเด™เดณเตเดŸเต† UUID <%= ENV.SESSIONID %> เด†เดฃเต

เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเด•, เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเด•, เด•เต‚เดŸเดพเดคเต† haserl luac เดคเดฒเด•เตเด•เต†เดŸเตเดŸเต เดšเต‡เตผเด•เตเด•เตเด•:
./test.cgi > test.lua
luac -s -o test.luac test.lua
เดŽเด•เตเด•เต‹ '#!/usr/bin/haserl --shell=luac' | cat - test.luac >luac.cgi

onworks.net เดธเต‡เดตเดจเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดนเดพเดธเตผเตฝ เด“เตบเดฒเตˆเดจเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•


เดธเต—เดœเดจเตเดฏ เดธเต†เตผเดตเดฑเตเด•เดณเตเด‚ เดตเตผเด•เตเด•เตเดธเตเดฑเตเดฑเต‡เดทเดจเตเด•เดณเตเด‚

Windows & Linux เด†เดชเตเดชเตเด•เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•

  • 1
    เดซเดธเตผ
    เดซเดธเตผ
    เดซเต‡เดธเตผ เดตเต‡เด—เดคเดฏเต‡เดฑเดฟเดฏเดคเตเด‚ เดธเต—เดœเดจเตเดฏเดตเตเด‚ เดฐเดธเด•เดฐเดตเตเดฎเดพเดฏ เด“เดชเตเดชเตบ เด†เดฃเต
    เดชเตเดฐเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด‰เดฑเดตเดฟเดŸ HTML5 เด—เต†เดฏเดฟเด‚ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเต
    WebGL, Canvas เดŽเดจเตเดจเดฟเดต เด‰เดŸเดจเต€เดณเด‚ เดฑเต†เตปเดกเดฑเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเต
    เดกเต†เดธเตเด•เตเดŸเต‹เดชเตเดชเต, เดฎเตŠเดฌเตˆเตฝ เดตเต†เดฌเต เดฌเตเดฐเต—เดธเดฑเตเด•เตพ. เด—เต†เดฏเดฟเดฎเตเด•เตพ
    เดธเดนเด•เดฐเดฟเด•เตเด•เดพเด‚...
    เดซเต‡เดธเตผ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•
  • 2
    เดตเดธเตเดธเตฝ เดŽเดžเตเดšเดฟเตป
    เดตเดธเตเดธเตฝ เดŽเดžเตเดšเดฟเตป
    เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด—เต†เดฏเดฟเด‚ เดŽเดžเตเดšเดฟเดจเดพเดฃเต เดตเดพเดธเตเดธเตฝ
    เดชเดฐเดฎเตเดชเดฐเดพเด—เดค เดฌเต‹เตผเดกเดฟเดจเตเดฑเต† เด‡เดฒเด•เตเดŸเตเดฐเต‹เดฃเดฟเด•เต เดชเดคเดฟเดชเตเดชเตเด•เตพ
    เด•เดพเตผเดกเต เด—เต†เดฏเดฟเดฎเตเด•เดณเตเด‚. เด‡เดคเต เดชเดฟเดจเตเดคเตเดฃ เดจเตฝเด•เตเดจเตเดจเต
    เด—เต†เดฏเดฟเด‚ เดชเต€เดธเต เดฑเต†เตปเดกเดฑเดฟเด‚เด—เตเด‚ เด‡เดŸเดชเต†เดŸเดฒเตเด‚,
    เด’เดชเตเดชเด‚...
    เดตเดพเดธเตเดธเตฝ เดŽเดžเตเดšเดฟเตป เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•
  • 3
    OpenPDF - iText เดจเตเดฑเต† เดซเต‹เตผเด•เตเด•เต
    OpenPDF - iText เดจเตเดฑเต† เดซเต‹เตผเด•เตเด•เต
    OpenPDF เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดœเดพเดต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดพเดฃเต
    เด•เต‚เดŸเดพเดคเต† เด’เดฐเต เดŽเตฝเดœเดฟเดชเดฟเดŽเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต PDF เดซเดฏเดฒเตเด•เตพ เดŽเดกเดฟเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต
    MPL เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดฒเตˆเดธเตปเดธเต. OpenPDF เด†เดฃเต
    iText-เดจเตเดฑเต† LGPL/MPL เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดชเดฟเตปเด—เดพเดฎเดฟ,
    a ...
    OpenPDF - เดซเต‹เตผเด•เตเด•เต เด“เดซเต iText เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•
  • 4
    เดธเดพเด— เดœเดฟ.เด.เดŽเดธเต
    เดธเดพเด— เดœเดฟ.เด.เดŽเดธเต
    SAGA - เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเดกเต เดธเดฟเดธเตเดฑเตเดฑเด‚
    เดœเดฟเดฏเต‹เดธเดฏเดจเตเดฑเดฟเดซเดฟเด•เต เด…เดจเดฒเตˆเดธเตเด•เตพ - เด’เดฐเต เดญเต‚เดฎเดฟเดถเดพเดธเตเดคเตเดฐเดชเดฐเดฎเดพเดฃเต
    เด‡เตปเดซเตผเดฎเต‡เดทเตป เดธเดฟเดธเตเดฑเตเดฑเด‚ (เดœเดฟเดเดŽเดธเต) เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ
    เดœเดฟเดฏเต‹เดกเดพเดฑเตเดฑเดฏเตเด•เตเด•เตเดณเตเดณ เด…เดชเดพเดฐเดฎเดพเดฏ เด•เดดเดฟเดตเตเด•เตพ
    เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เตเด‚ เด…เดจ...
    SAGA GIS เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•
  • 5
    Java/JTOpen เดจเดพเดฏเตเดณเตเดณ เดŸเต‚เตพเดฌเต‹เด•เตเดธเต
    Java/JTOpen เดจเดพเดฏเตเดณเตเดณ เดŸเต‚เตพเดฌเต‹เด•เตเดธเต
    Java / JTOpen เดจเดพเดฏเตเดณเตเดณ IBM เดŸเต‚เตพเดฌเต‹เด•เตเดธเต a
    เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดœเดพเดต เด•เตเดฒเดพเดธเตเด•เดณเตเดŸเต† เดฒเตˆเดฌเตเดฐเดฑเดฟ
    เด•เตเดฒเดฏเดจเตเดฑเต/เดธเต†เตผเดตเตผ, เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต
    OS/400 เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฎเต‹เดกเดฒเตเด•เตพ,
    i5/OS, เด’...
    Java/JTOpen เดจเดพเดฏเตเดณเตเดณ เดŸเต‚เตพเดฌเต‹เด•เตเดธเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•
  • 6
    D3.js
    D3.js
    D3.js (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดกเดพเดฑเตเดฑเดพเดงเดฟเดทเตเด เดฟเดค เดชเตเดฐเดฎเดพเดฃเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ D3)
    เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต JavaScript เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดพเดฃเต
    เดšเดฒเดจเดพเดคเตเดฎเด•เดตเตเด‚ เดธเด‚เดตเต‡เดฆเดจเดพเดคเตเดฎเด•เดตเตเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป
    เดตเต†เดฌเต เดฌเตเดฐเต—เดธเดฑเตเด•เดณเดฟเดฒเต† เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฃเด‚. D3 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต
    เดจเต€...
    D3.js เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•
  • เด•เต‚เดŸเตเดคเตฝ "

เดฒเดฟเดจเด•เตเดธเต เด•เดฎเดพเตปเดกเตเด•เตพ

Ad