我正在使用Codeigniter 3
,由于MY_Controller,我在表单提交时使用重定向时出现问题。基本上我有一个包含日期和文本的搜索表单,我使用基于表单输入的URI段重定向到MY_Controller。即在我的基本网站URL提交表单时,我会处理输入并重定向到mywebsite / search / from date / to date / text / search text。由于逻辑在MY_Controller中,数据被处理的次数超过一次并且丢失了。
我切换到使用jQuery构建重定向字符串并进行重定向,它工作正常。我只是在检查这是否会产生任何安全隐患,或者是否有人发现这种方法存在任何问题?
在表单提交上调用的jQuery脚本
<script type="text/javascript">
$( "#do_search" ).click(function(e) {
e.preventDefault();
var from_date = $(this).closest("form").find("input[name='from_date']").val();
var to_date = $(this).closest("form").find("input[name='to_date']").val();
var search_text = $(this).closest("form").find("input[name='search_text']").val();
var first = window.location.pathname;
first.indexOf(1);
first.toLowerCase();
first = first.split("/")[1];
var redir_url = window.location.protocol + '//' + window.location.host + '/' + first + '/search/' + from_date + '/' + to_date;
if(search_text !== ''){
redir_url = redir_url + '/text/' + search_text;
}
$('#search').attr('action', redir_url).submit();
return false;
});
</script>
在MY_Controller中处理生成的URL,维护会话变量并正确解析URL。我正在使用CSRF和活跃记录,所以我认为这是一种安全的方法,但是想与您联系。
答案 0 :(得分:0)
您只是从表单输入中获取日期信息并从中构建URL。这种方法没有什么不安全感。
答案 1 :(得分:0)
我认为没有安全问题,如果用户在search_text输入中写入特殊字符,就会遇到问题。您应该在提交之前预先验证