CodeIgniter URL

Sar*_*raz 1 php frameworks codeigniter

您在CI工作过的任何一个人都知道它对网址采用了分段方法,例如:

index.php/controller/function/params
Run Code Online (Sandbox Code Playgroud)

假设我已经提交了以下网址来提交联系我们表格信息:

index.php/contact/submit_contact
Run Code Online (Sandbox Code Playgroud)

现在有一件事似乎是错的.如果坏人看到我联系我们页面的源代码并查看表单的action属性怎么办?他可以直接复制并粘贴到浏览器的地址栏中,我的表单将以空值提交.

他能做的另一件坏事很可能就是CSFR跨站点伪造.

如何避免这个问题.

注意:我知道我需要针对空值验证我的表单,如果字段为空则不提交它,但我正在寻找一个更好的通用解决方案来解决这个问题.

zom*_*bat 11

没有更好的解决方案来解决这个问题.您构建的每个网页都应该假设来自用户的所有输入都是敌对的,并相应地处理它.

在这种情况下要做的正确的事情是尝试验证表单,当您发现有一些不正确或不可接受的值时,重新输出表单,其中包含指示问题的错误消息,并允许用户在重新输出之前修复它. -submitting.Code Igniter具有专用于此精确流程的完整表单验证模块.

即使您使用Javascript来验证表单并阻止它提交,如果它不正确,您仍然需要在服务器端重复验证,因为任何人都可以在提交充满错误值的表单之前关闭Javascript.