0

我有一个包含文本区域和提交按钮的 Python CGI 脚本输出的 HTML 页面。我想防止用户弄乱 textarea 字段,例如提交恶意代码或任何其他可能破坏脚本的代码。该脚本看起来很简单:

输入您的信息:

如何防止用户输入类似

innocent message.</textarea>randomcode

进入textarea,关闭textarea并将脚本与提交一起传递?那么抓住用户在文本区域中输入结束标签?

4

2 回答 2

0

除非您打算以一种导致其被解析为 HTML 的方式处理用户输入,否则无需捕获结束标记。如果你正在做这样的事情,你会遇到比关闭标签更大的问题。

默认情况下,Textarea 以纯文本输入,纯文本是您的 CGI 脚本获取的内容,所以这只是不要乱用它,以便将其提供给 HTML 解析器。

特别是,如果您打算将用户数据显示为您自己页面的一部分,那么您当然应该以使浏览器将其视为纯文本的方式来执行此操作 - 或对其进行清理,以便您只传递您自己的 HTML 标记希望允许,并将其他标签转换为纯文本或删除它们。

于 2013-09-07T16:10:03.630 回答
0

根据您的描述,以下是图纸:
假设您的服务器端技术是 Python,它派生一个包含表单元素的 HTML 页面。

您想阻止用户输入相应的结束标签;基本上限制用户输入非字母数字字符。

解决方案:让您的 Python 脚本在派生 HTML 表单元素时派生一个 javascript 函数;处理这个的东西:

<script language="javascript">
function fnCheckAlphabets()
{
    if(!((event.keyCode>43 && event.keyCode<47)||(event.keyCode>64 && event.keyCode<123)|| event.keyCode==32 ))
    { return false;  }
}

并在 textarea 的事件处理程序或表单的 onSubmit 上调用它。

您可以根据您的要求更改键码。

其他方法是在服务器端 Python 获取值并清理这些值,如下所示:例如

user = form.getfirst("user", "").upper()    # This way it's safe.

您可以替换不需要的字符,而不是使用 upper。

参考:http ://docs.python.org/2/library/cgi.html

干杯!

于 2013-09-07T06:19:06.883 回答