Javascript输入问题
我已经编写了一个代码,用于在提交表单时重定向页面。 我有一个下拉列表和文本框。 我输入了Javascript输入问题,javascript,php,Javascript,Php,我已经编写了一个代码,用于在提交表单时重定向页面。 我有一个下拉列表和文本框。 我输入了作为文本框的输入,这导致了正常的执行,但使用了)在屏幕上 这是我从firebug工具中得到的 <script type="text/javascript"> loadSearch('Customer',' </script> '); >: $i请求[ [搜索输入] ] /代码>是文本框,如果文本框以 作为输入 您为什么不考虑使用没有任何PHP的纯JavaScript?< /P>
作为文本框的输入,这导致了正常的执行,但使用了)代码>在屏幕上
这是我从firebug工具中得到的
<script type="text/javascript">
loadSearch('Customer','
</script>
');
<> >:<代码> $i请求[ [搜索输入] ] /代码>是文本框,如果文本框以<代码> <代码>作为输入 您为什么不考虑使用没有任何PHP的纯JavaScript?< /P>
<input type="text" id="selM">
<input type="text" id="selK">
<input type="button" onclick="loadSearch(document.getElementById('selM').value,document.getElementById('selK').value);">
服务器端代码中存在严重漏洞。您应该始终使用htmlspecialchars
等方法清除由用户输入产生的字符串
替换:
$_REQUEST['search_details']
及
与:
htmlspecialchars($_REQUEST['search_details'], ENT_QUOTES, 'UTF-8')
及
不这样做可能会使您的网站易受攻击,恶意用户可能会使用脚本窥探您的用户。此函数的作用是转换特殊字符,如。问题是您正在将请求值转储到页面中,而不进行任何转义。由于这是JavaScript,一个快速修复方法是使用json\u encode()
将值编码为json:
<?php
if($_POST['searchButton']){
echo "<script type='text/javascript'>loadSearch(".
str_replace(json_encode($_REQUEST['search_details']), '<', '\x3C') . ", " .
str_replace(json_encode($_REQUEST['search_input']), '<', '\x3C').
");</script>";
}
?>
但问题仍然存在:如果您真正想做的是将用户重定向到搜索页面,那么首先为什么要使用这种迂回脚本方法?为什么不直接用PHP做一个测试?我不知道你在问什么。请改进您的问题。我试图编辑您的问题,以便至少清楚什么是文本,什么是代码,但第一段仍然很混乱,我不知道是哪一段)
和代码>是问题的一部分。请编辑此内容,将内联代码片段放在背景标记中,然后重新表述问题。@Chilion这不是问题吗?您既没有描述问题,也没有提出问题。我们能帮你什么?@Shikhar Bhardwaj Yep。改变了,tnx@NMN您是否删除了搜索输入部分前后的”
(单引号)?你需要这样做。重定向正在发生;但url变成/index.php?pg=search&selMod=Customer&selKey=“”;我希望它是/index.php?pg=search&selMod=Customer&selKey=@NMN应为%2F
。这是在URL查询值中表示值/
的正确方法。关于您在那里看到的一对引号,我再次询问,您是否确保删除搜索输入部分前后的两个
部分?是;我在屏幕中显示时使用了json_解码textbox@NMN你能粘贴你正在尝试的当前PHP代码或其他东西让我看一下吗?htmlspecialchars()
不是这个工作的合适工具。这些值将在JavaScript中被错误解释。
$_REQUEST['search_input']
htmlspecialchars($_REQUEST['search_details'], ENT_QUOTES, 'UTF-8')
htmlspecialchars($_REQUEST['search_input'], ENT_QUOTES, 'UTF-8')
<?php
if($_POST['searchButton']){
echo "<script type='text/javascript'>loadSearch(".
str_replace(json_encode($_REQUEST['search_details']), '<', '\x3C') . ", " .
str_replace(json_encode($_REQUEST['search_input']), '<', '\x3C').
");</script>";
}
?>
function loadSearch(selM,selK){
document.location.href="index.php?pg=search&selM="+
encodeURIComponent(selM) + "&selK=" +
encodeURIComponent(selK);
}