本文目录一览:
- 1、thinkphp 的上传代码中。如何让上传的文件的保存名为它自己的名字,而不是时间戳生成的名字
- 2、纠结,原生PHP很熟练,还有没有必要去学ThinkPHP
- 3、新版ThinkPHP(3.2.3)中的msubstr()函数怎么用啊
- 4、php网站怎样防御xss攻击?
- 5、thinkphp怎么做才是安全的sql防注入
- 6、php下怎样防止XSS攻击
thinkphp 的上传代码中。如何让上传的文件的保存名为它自己的名字,而不是时间戳生成的名字
可以设置啊,saveRule 上传文件命名规则 留空则使用原来文件名保存;
网上随便一搜索,都是这个,
纠结,原生PHP很熟练,还有没有必要去学ThinkPHP
熟练也不行,原生的是基础,有便于理解。如果用原生的做项目会出现很多问题,比如扩展性低,比如某一个函数出现不兼容,处理起来很麻烦,比如一些漏洞 sql注入、xss、csrf都要自己写,框架中好多都是自带的,最少要用熟练一到两种框架,还要会最少一种开源框架的二次开发,这样一个陌生的项目才能快速理清逻辑。
新版ThinkPHP(3.2.3)中的msubstr()函数怎么用啊
\Org\Util\String::msubstr($str, $start, $length, $charset, $suffix);
您好,静态类按照上面这样用就行了,\后面都是路径。或者您也可以在公共Common.php里写个函数方便以后直接调用。
/**
* 字符串截取,支持中文和其他编码
* @access public
* @param string $str 需要转换的字符串
* @param string $start 开始位置
* @param string $length 截取长度
* @param string $charset 编码格式
* @param string $suffix 截断显示字符
* @return string
*/
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {
return \Org\Util\String::msubstr(strip_tags($str), $start, $length, $charset, $suffix);
}
php网站怎样防御xss攻击?
过滤用户输入的script/script以及其他的HTML标签等。。
thinkphp怎么做才是安全的sql防注入
1.尽量少使用数组查询条件而应该使用查询表达式替代;
2.尽量少使用字符串查询条件,如果不得已的情况下 使用手动参数绑定功能;
3.不要让用户输入决定要查询或者写入的字段;
对于敏感数据在输出的时候使用hidden方法进行隐藏;
对于数据的写入操作应当做好权限检查工作;
写入数据严格使用field方法限制写入字段;
对于需要输出到页面的数据做好必要的XSS过滤;
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手册来查看: