![]()
|
|||||||
import cgi. Но есть нюанс. import cgi. import htmlimport cgi
form = cgi.FieldStorage() text1 = form.getfirst("TEXT_1", "не задано") text2 = form.getfirst("TEXT_2", "не задано")
print("Content-type: text/html\n") print("""<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Обработка данных форм</title> </head> <body>""")
print("<h1>Обработка данных форм!</h1>") print("<p>TEXT_1: {}</p>".format(text1)) print("<p>TEXT_2: {}</p>".format(text2))
print("""</body> </html>""") Попробуем это в действии (кто сидит на linux, не забудьте поставить права на выполнение). Запускаем локальный сервер, и переходим на localhost:8000: Но есть нюанс... А если попробовать так? Это серьёзная уязвимость, поэтому от неё нужно избавляться. Для этого нужно (в самом простом случае) экранировать все опасные символы. Это можно сделать с помощью функции escape из модуля html. Перепишем form.py: #!/usr/bin/env python3 import cgi import html
form = cgi.FieldStorage() text1 = form.getfirst("TEXT_1", "не задано") text2 = form.getfirst("TEXT_2", "не задано") text1 = html.escape(text1) text2 = html.escape(text2)
print("Content-type: text/html\n") print("""<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Обработка данных форм</title> </head> <body>""")
print("<h1>Обработка данных форм!</h1>") print("<p>TEXT_1: {}</p>".format(text1)) print("<p>TEXT_2: {}</p>".format(text2))
print("""</body> </html>""") Результат можете проверить сами. Вообще говоря, экранирование нежелательных символов везде, где нужно - очень большая проблема безопасности веб-приложений. Помните об этом.
|
|||||||
|