我有一个提交到post.php文件的简单表单。
此表单包含输入字段。如果在任何这些输入字段中写入的文本是:System something
,那么我会收到403禁止错误。
但是,如果我用引号(即"System"
)编写相同的系统,那么它可以正常工作。
似乎系统在这里被视为一个命令,之后我写的内容被视为参数。
代码甚至没有达到post.php。即使我删除了post.php文件,我仍然会收到403错误而不是找不到文件错误。也许这与Apache有关。
请指教。 以下是表格:
<form action="post.php" method="post" name="form1">
<table cellspacing="0" cellpadding="4" border="0">
<tbody><tr valign="top">
<td>Title</td>
<td><input type="text" value="" size="40" id="title" name="title"></td>
</tr>
<tr valign="top">
<td>Company</td>
<td><input type="text" value="" size="40" id="company" name="company"></td>
</tr>
<tr valign="top">
<td>Responsibilities</td>
<td><textarea id="responsibilities" rows="7" cols="55" name="responsibilities"></textarea></td>
</tr>
<tr valign="top">
<td>Position Requirements</td>
<td><textarea id="requirements" rows="7" cols="55" name="requirements"></textarea></td>
</tr>
<tr valign="top">
<td>Contact</td>
<td><textarea id="contact" rows="7" cols="55" name="contact"></textarea></td>
</tr>
<tr valign="top">
<td>Contact Name </td>
<td><input type="text" value="" size="40" id="contact_name" name="contact_name"></td>
</tr>
<tr valign="top">
<td>Contact Title </td>
<td><input type="text" value="" size="40" id="contact_title" name="contact_title"></td>
</tr>
<tr valign="top">
<td>Address 1</td>
<td><input type="text" value="" size="40" id="address1" name="address1"></td>
</tr>
<tr valign="top">
<td>Address 2</td>
<td><input type="text" value="" size="40" id="address2" name="address2"></td>
</tr>
<tr valign="top">
<td>Contact Phone </td>
<td><input type="text" value="" size="40" id="contact_phone" name="contact_phone"></td>
</tr>
<tr valign="top">
<td>Contact Fax</td>
<td><input type="text" value="" size="40" id="contact_fax" name="contact_fax"></td>
</tr>
<tr valign="top">
<td>Contact Email </td>
<td><input type="text" value="" size="40" id="contact_email" name="contact_email"></td>
</tr>
<tr valign="top">
<td>Contact Website </td>
<td><input type="text" value="" size="40" id="contact_website" name="contact_website"></td>
</tr>
<tr valign="top">
<td> </td>
<td> </td>
</tr>
<tr valign="top">
<td colspan="2"><input type="submit" value="Add Job" name="Submit"></td>
</tr>
</tbody></table>
</form>
以下是发送的HTTP标头:
(Request-Line) POST /admin/jobbank/post.php HTTP/1.1
User-Agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100401 Ubuntu/9.10 (karmic) Firefox/3.5.9
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Referer jobbank/add.php
Cookie PHPSESSID=bc679ded5a7f7650692084042c137d77
Content-Type application/x-www-form-urlencoded
Content-Length 188
收到的HTTP回复:
(Status-Line) HTTP/1.1 403 Forbidden
Date Tue, 31 Aug 2010 09:52:16 GMT
Server Apache/1.3.41 Ben-SSL/1.60 (Unix) mod_gzip/1.3.26.1a mod_fastcgi/2.4.2 mod_throttle/3.1.2 Chili!Soft-ASP/3.6.2 FrontPage/5.0.2.2635 mod_perl/1.30 PHP/4.4.9
Keep-Alive timeout=15
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/html; charset=iso-8859-1
答案 0 :(得分:3)
我猜你有一些针对Apache的保护模块,可以检查GET和POST变量是否有http://www.modsecurity.org/
等可疑值您需要调整或关闭它。
我认为他们大部分时间都有问题......