Apache服务器启用了TRACE Method如何关闭?

2016年11月24日 评论已被关闭

360检查出漏洞:服务器启用了TRACE Method。建议:禁用TRACE方法。那么如何禁用呢。

TRACE和TRACK是用来调试web服务器连接的HTTP方式。支持该方式的服务器存在跨站脚本漏洞,通常在描述各种浏览器缺陷的时候,把"Cross-Site-Tracing"简称为XST。攻击者可以利用此漏洞欺骗合法用户并得到他们的私人信息。

如何关闭Apache的TRACE请求

方法1. 虚拟主机用户可以在.htaccess文件中添加如下代码过滤TRACE请求:

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* – [F]

方法2. 服务器用户在httpd.conf尾部添加如下指令后重启apache即可:

TraceEnable off

如果是自己的服务器,可以轻松设置,如果是购买的虚拟主机,你可以找idc服务商让他们帮你关闭,一般他们会建议你使用第一种办法。

分类: php 标签:

Apache开启SSI(shtml)配置使html支持include的方法

2016年11月4日 评论已被关闭

在网站根目录建立 .htaccess 文件,.htaccess文件加入如下3行代码

AddType text/html .shtml .html
AddOutputFilter INCLUDES .shtml .html
Options Indexes FollowSymLinks Includes

这样html页面就能支持这样的标签了
<!–#include virtual="/common/foot.html"–>

分类: php 标签:

mysql中update的low_priority

2016年10月25日 评论已被关闭

low_priority,低优先级
UPDATE [LOW_PRIORITY] tbl_name SET col_name1=expr1,col_name2=expr2,…

mysql中update用low_priority让update不锁定表

MySQL允许你改变语句调度的优先级,它可以使来自多个客户端的查询更好地协作,这样单个客户端就不会由于锁定而等待很长时间。改变优先级还可以确保特定类型的查询被处理得更快。这一部分讲解MySQL的默认的调度策略和可以用来影响这些策略的选项。它还谈到了并发性插入操作的使用和存储引擎锁定层次对客户端的并发性的影响。为了讨论的方便,我们把执行检索(SELECT)的客户端称为"读取者",把执行修改操作(DELETE、INSERT、REPLACE或UPDATE)的客户端称为"写入者"。

(在不要求实时的情况下,写入可以降低跟新插入操作的优先级,确保读的速度。当然,也有更好的方法来完成这个目的,主从,中间缓存,都可以。)

 

MySQL的默认的调度策略可用总结如下:

· 写入操作优先于读取操作。

· 对某张数据表的写入操作某一时刻只能发生一次,写入请求按照它们到达的次序来处理。

· 对某张数据表的多个读取操作可以同时地进行。

 

MyISAM和MEMORY存储引擎借助于数据表锁来实现这样的调度策略。当客户端访问某张表的时候,首先必须获取它的锁。当客户端完成对表的操作的时候,锁就会被解除。通过LOCK TABLES和UNLOCK TABLES语句来显式地获取或释放锁是可行的,但是在通常情况下,服务器的锁管理器会自动地在需要的时候获取锁,在不再需要的时候释放锁。获取的锁的类型依赖于客户端是写入还是读取操作。

对某张表进行写入操作的客户端必须拥有独占的(排他的)访问权的锁。操作在进行的过程中,该数据表处于不一致的(inconsistent)状态,因为数据记录在删除、添加或修改的时候,数据表上的索引也可能需要更新以相互匹配。这个数据表在变化的过程中,如果允许其它的客户端访问,会出现问题。非常明显,允许两个客户端同时写入一张数据表是不利的,因为这样的操作会很快使数据表中的信息成为一堆无用的垃圾。但是允许客户端读取变化之中的数据表也不好,因为正在读取的位置中的数据可能正在变化(修改),读取的结果可能不是真实的。

对某张表执行读取操作的客户端必须获取一个锁,防止在读取的过程中,其它的客户端写入或改变表。但是这个锁不需要独占的访问权。读取操作不会改变数据,因此没有理由让某个读取者阻止其它的读取者访问这张表。因此读取锁允许其它的客户端在同一时刻读取这张表。

MySQL提供了几个语句调节符,允许你修改它的调度策略:

· LOW_PRIORITY关键字应用于DELETE、INSERT、LOAD DATA、REPLACE和UPDATE。

· HIGH_PRIORITY关键字应用于SELECT和INSERT语句。

· DELAYED关键字应用于INSERT和REPLACE语句。

LOW_PRIORITY和HIGH_PRIORITY调节符影响那些使用数据表锁的存储引擎(例如MyISAM和MEMORY)。DELAYED调节符作用于MyISAM和MEMORY数据表。

改变语句调度的优先级

LOW_PRIORITY关键字影响DELETE、INSERT、LOAD DATA、REPLACE和UPDATE语句的执行调度。通常情况下,某张数据表正在被读取的时候,如果有写入操作到达,那么写入者一直等待读取者完成操作(查询开始之后就不能中断,因此允许读取者完成操作)。如果写入者正在等待的时候,另一个读取操作到达了,该读取操作也会被阻塞(block),因为默认的调度策略是写入者优先于读取者。当第一个读取者完成操作的时候,写入者开始操作,并且直到该写入者完成操作,第二个读取者才开始操作。

如果写入操作是一个LOW_PRIORITY(低优先级)请求,那么系统就不会认为它的优先级高于读取操作。在这种情况下,如果写入者在等待的时候,第二个读取者到达了,那么就允许第二个读取者插到写入者之前。只有在没有其它的读取者的时候,才允许写入者开始操作。理论上,这种调度修改暗示着,可能存在LOW_PRIORITY写入操作永远被阻塞的情况。如果前面的读取操作在进行的过程中一直有其它的读取操作到达,那么新的请求都会插入到LOW_PRIORITY写入操作之前。

SELECT查询的HIGH_PRIORITY(高优先级)关键字也类似。它允许SELECT插入正在等待的写入操作之前,即使在正常情况下写入操作的优先级更高。另外一种影响是,高优先级的SELECT在正常的SELECT语句之前执行,因为这些语句会被写入操作阻塞。

如果你希望所有支持LOW_PRIORITY选项的语句都默认地按照低优先级来处理,那么请使用–low-priority-updates选项来启动服务器。通过使用INSERT HIGH_PRIORITY来把INSERT语句提高到正常的写入优先级,可以消除该选项对单个INSERT语句的影响。mysql中update的low_priority

参考:
http://dev.mysql.com/doc/refman/5.7/en/update.html

分类: mysql 标签:

php根据行号替换字符串

2016年10月18日 评论已被关闭

php要实现根据行号替换内容,使用str_replace这样的函数是无法实现的,可以先根据换行符把文本分割成数字,然后便利数组实现替换功能。

<?php
$url='z.txt';
$content=file_get_contents($url);
$contentArr=explode("\n",$content);
$ikey=0;
foreach($contentArr as &$val){
    if(strpos($val, '<!–nextpage–>') !== false){
        $val=$ikey.' '.$val;
        $ikey++;
    }
}
    
$content=implode("\n",$contentArr);
?>

参考:
https://www.google.com.hk/search?q=php+replace+line+number&oq=php+str_replace+line+n&aqs=chrome.4.69i57j0l4j69i64.11316j0j7&sourceid=chrome&ie=UTF-8
http://stackoverflow.com/questions/3004041/how-to-replace-a-particular-line-in-a-text-file-using-php
http://stackoverflow.com/questions/13444555/replace-a-string-at-a-certain-line-number

http://stackoverflow.com/questions/18991843/replace-line-in-text-file-using-php

分类: php 标签:

file_get_contents url 含有特殊字符获取失败问题处理

2016年10月18日 评论已被关闭

file_get_contents 在文件名包含特殊符号的时候回遇到处理失败的情况,解决办法是使用urlencode函数处理下文件名。
<?php

$name='包含特殊符的文件名';
$name=urlencode($name);

$url = "http://phpff.com/{$name}.jpg";
$con = file_get_contents($url);
?>

分类: php 标签:


标签

ajax apache array array_slice CentOS checkbox composer cookie csv date DATE_FORMAT excel FCKEditor FilesystemIterator file_get_contents laravel Magento Certified Developer mb_substr memcache Memcached MySQL String Functions Netbeans openssl php面试题 preg_match_all preg_replace QQ登录 rewrite SaeStorage serialize session setTimeout Sphinx spl Storage strtotime ueditor vsftp vsftpd Zend zip 分割字符串 图片处理 新浪云 正则表达式

存档