本文目录一览:
php下怎样防止XSS攻击
在PHP中修补XSS漏洞,我们可以使用三个PHP函数。
这些函数主要用于清除HTML标志,这样就没办法注入代码了。使用更多的函数是htmlspecialchars() ,它可以将所有的""与""符号转换成"" 与"gt;"。其它可供选择的函数还有htmlentities(), 它可以用相应的字符实体(entities)替换掉所有想要替换掉的特征码(characters)。
PHP Code:
?
// 这里的代码主要用于展示这两个函数之间输出的不同
$input = 'scriptalert(1);/script';
echo htmlspecialchars($input) . 'br /';
echo htmlentities($input);
?
htmlentities()的另一个例子
PHP Code:
?php
$str = "A 'quote' is bbold/b";
echo htmlentities($str);
echo htmlentities($str, ENT_QUOTES);
?
第一个显示: A 'quote' is bbold/b
第二个显示:A 'quote' is bbold/b
htmlspecialchars()使用实例
PHP Code:
?php
$new = htmlspecialchars("a href='test'Test/a", ENT_QUOTES);
echo $new;
?
显示: a href='test'Test/a
strip_tags()函数代替.删除所有的HTML元素(elements),除了需要特别允许的元素之外,如:i, b 或p.
strip_tags()使用实例
PHP Code:
?php
$text = 'pTest paragraph./p!-- Comment -- Other text';
echo strip_tags($text);
echo "\n";
// allow p
echo strip_tags($text, 'p');
?
现在我们至少已经知道有这些函数了,当我们发现我们的站点存在XSS漏洞时就可以使用这些代码了。我最近在我的站点上的GoogleBig(一个Mybb论坛的插件)视频部分发现了一个XSS漏洞,因此我就在想如何使用这些函数写段代码来修补这个搜索漏洞。
首先我发现问题出在search.php这一文件上,现在让我们看看这个查询及输出查询结果中的部分代码研究一下:
PHP Code:
function search($query, $page)
{
global $db, $bgcolor2, $bgcolor4, $sitename, $io_db, $module_url, $list_page_items, $hm_index;
$option = trim($option);
$query = trim($query);
$query = FixQuotes(nl2br(filter_text($query)));
$db-escape_string($query);
$db-escape_string($option);
alpha_search($query);
...
在这种情况下,我们通过使用$query这一值作为变量,然后使用htmlentities()这一函数:
PHP Code:
$query = FixQuotes(nl2br(filter_text(htmlentities($query))));
如果你对这三种函数还有有疑问可以使用PHP手册来查看:
如何在php中修补XSS漏洞
你好,如果要修补xss漏洞,通用的一个做法是使用htmlspecialchars()函数。
使用该函数大概可以预防90%左右的xss左右的攻击,避免你的PHP程序受到攻击。
修复php漏洞xss改那个文件
?php
$aa=$_GET['dd'];
echo $aa."123";//这里没有经过过滤就可以显示出来,导致的
?
过滤原理:
首先要想执行js脚本那就让html解析那些是js脚本,诸如:
script type="text/javascript"alert("这里会被js执行");/script
所以要过滤script标签和/script
或者过滤‘’和‘’这两个符号
实现:
?php
$aa=$_GET['dd'];
$aa=str_replace('','lt;',$aa);
$aa=str_replace('','gt;',$aa);//以上两句是直接过滤''和''缺点其他便签不能用
/*定向过滤script*/
/*
$aa=str_replace('script','lt;scriptgt;',$aa);
$aa=str_replace('/script','lt;/scriptgt;',$aa);
*/
echo $aa."123";//这里没有经过过滤就可以显示出来,导致的
?
总的来说就是过滤些"非法"标签
xss漏洞怎样修复啊safe3603.php那个文件的怎样弄啊
1,免费的网站漏洞扫描工具进行跨站漏洞的扫描,及时把漏洞修复好,可以有效防止遭遇跨站攻击。
2,建议你到eesafe网站安全联盟认证站长,申请免费的网站安全人工测试 会有网站安全工程师给你专业的解决建议或方案
3,推荐建议你下载个腾讯电脑管家,他有修复系统的功能。现在出了8.0版本的,见面简单,操作快捷,易懂,管理杀毒2合1,引进小红伞功能,新加安全报警功能,实时监测你的电脑,和浏览的网址,网站,是你放心上网,不怕木马等不安定因素,还有,qq可以加速,安全币可以领礼包,重点是,你轩昂解决你一系列问题,它都能尽最大的努力帮你尽可能的有效解决,。
个人见解,希望而已帮到你。望采纳。谢谢