我有一个包含文本区域和提交按钮的 Python CGI 脚本输出的 HTML 页面。我想防止用户弄乱 textarea 字段,例如提交恶意代码或任何其他可能破坏脚本的代码。该脚本看起来很简单:
输入您的信息:
如何防止用户输入类似
innocent message.</textarea>randomcode
进入textarea,关闭textarea并将脚本与提交一起传递?那么抓住用户在文本区域中输入结束标签?
除非您打算以一种导致其被解析为 HTML 的方式处理用户输入,否则无需捕获结束标记。如果你正在做这样的事情,你会遇到比关闭标签更大的问题。
默认情况下,Textarea 以纯文本输入,纯文本是您的 CGI 脚本获取的内容,所以这只是不要乱用它,以便将其提供给 HTML 解析器。
特别是,如果您打算将用户数据显示为您自己页面的一部分,那么您当然应该以使浏览器将其视为纯文本的方式来执行此操作 - 或对其进行清理,以便您只传递您自己的 HTML 标记希望允许,并将其他标签转换为纯文本或删除它们。
根据您的描述,以下是图纸:
假设您的服务器端技术是 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
干杯!