Моя цель состоит в том, чтобы мой SSI (shtml) анализировал параметры данных POST и возвращал длинную зашифрованную строку, которая будет основана на этих параметрах. Я использую IIS в качестве сервера.
Мои ограничения:
- Я не могу изменить URL - /document.shtml
- shtml должен возвращать только результат строки base 64.
Что я пробовал:
- Использование «exec cgi» в shtml следующим образом:
документ.shtml:
<!--#exec cgi="/pythonApp/test.py?sdfsdf=sdfsdf" -->
test.py (упрощенная версия, без логики шифрования):
import cgitb
cgitb.enable()
import base64,urllib,json,os,sys
import cgi
print "Content-Type: text/plain;charset=utf-8"
print
cl, _ = cgi.parse_header(os.environ['CONTENT_LENGTH'])
if (int(cl)>0):
data = sys.stdin.read(int(cl))
input_j = json.loads(data)
print "AB : ",input_j["AB"]
else:
print "Failed to read POST request"
Проблема здесь в том, что если я отправлю запрос на публикацию в .../test.py , то он сработает, но если я отправлю запрос в document.shtml, длина содержимого все равно будет положительной, как описано в переменной среды, но стандартный ввод получит ошибку.
- Моя другая идея заключалась в том, чтобы как-то прочитать данные POST из самого shtml и передать их в cgi следующим образом:
<!--#exec cgi="/pythonApp/test.py?sdfsdf=sdfsdf" -->
Проблема в том, что я просмотрел сеть и не нашел способа сделать это из shtml.
Какие-либо предложения? я пропустил что-то простое?