Login
网站首页 > 文章中心 > 其它

php防跨站之open_宝塔防跨站攻击

作者:小编 更新时间:2023-10-08 09:54:49 浏览量:27人看过

如何防止跨站攻击~~~

①.、服务器安全设置之--硬盘权限篇

这里着重谈需要的权限,也就是最终文件夹或硬盘需要的权限,可以防御各种木马入侵,提权攻击,跨站攻击等.本实例经过多次试验,安全性能很好,服务器基本没有被木马威胁的担忧了.

硬盘或文件夹: C:\ D:\ E:\ F:\ 类推

主要权限部分:

Administrators 完全控制 无

该文件夹,子文件夹及文件

不是继承的

CREATOR OWNER 完全控制

只有子文件夹及文件

SYSTEM 完全控制

其他权限部分:

如果安装了其他运行环境,比如PHP等,则根据PHP的环境功能要求来设置硬盘权限,一般是安装目录加上users读取运行权限就足够了,比如c:\php的话,就在根目录权限继承的情况下加上users读取运行权限,需要写入数据的比如tmp文件夹,则把users的写删权限加上,运行权限不要,然后把虚拟主机用户的读权限拒绝即可.如果是mysql的话,用一个独立用户运行MYSQL会更安全,下面会有介绍.如果是winwebmail,则最好建立独立的应用程序池和独立IIS用户,然后整个安装目录有users用户的读/运行/写/权限,IIS用户则相同,这个IIS用户就只用在winwebmail的WEB访问中,其他IIS站点切勿使用

硬盘设置需要根据你的实际需要来设置权限!

*除非特殊情况非开不可,下列系统服务要停止并禁用:

Background Intelligent Transfer Service

B、改名不安全组件,需要注意的是组件的名称和Clsid都要改,并且要改彻底了,不要照抄,要自己改

用这个方法能找到两个注册表项:

第一步:为了确保万无一失,把这两个注册表项导出来,保存为xxxx.reg 文件.

第二步:比如我们想做这样的更改

Shell.application 改名为 Shell.application_nohack

第三步:那么,就把刚才导出的.reg文件里的内容按上面的对应关系替换掉,然后把修改好的.reg文件导入到注册表中(双击即可),导入了改名后的注册表项之后,别忘记了删除原有的那两个项目.这里需要注意一点,Clsid中只能是十个数字和ABCDEF六个字母.

其实,只要把对应注册表项导出来备份,然后直接改键名就可以了.

WScript.Shell 和 Shell.application 组件是 脚本入侵过程中,提升权限的重要环节,这两个组件的卸载和修改对应注册键名,可以很大程度的提高虚拟主机的脚本安全性能,一般来说,ASP和php类脚本提升权限的功能是无法实现了,再加上一些系统服务、硬盘访问权限、端口过滤、本地安全策略的设置,虚拟主机因该说,安全性能有非常大的提高,黑客入侵的可能性是非常低了.注销了Shell组件之后,侵入者运行提升工具的可能性就很小了,但是prel等别的脚本语言也有shell能力,为防万一,还是设置一下为好.下面是另外一种设置,大同小异.

第一段:禁止使用FileSystemObject组件

FileSystemObject可以对文件进行常规操作,可以通过修改注册表,将此组件改名,来防止此类木马的危害.

HKEY_CLASSES_ROOT\Scripting.FileSystemObject\

改名为其它的名字,如:改为 FileSystemObject_ChangeName

自己以后调用的时候使用这个就可以正常调用此组件了

也要将clsid值也改一下

HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\项目的值

也可以将其删除,来防止此类木马的危害.

如何禁止Guest用户使用scrrun.dll来防止调用此组件?

第二段:禁止使用WScript.Shell组件

WScript.Shell可以调用系统内核运行DOS基本命令

可以通过修改注册表,将此组件改名,来防止此类木马的危害.

HKEY_CLASSES_ROOT\WScript.Shell\及HKEY_CLASSES_ROOT\WScript.Shell.1\

改名为其它的名字,如:改为WScript.Shell_ChangeName 或 WScript.Shell.1_ChangeName

HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值

HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值

第三段:禁止使用Shell.Application组件

Shell.Application可以调用系统内核运行DOS基本命令

HKEY_CLASSES_ROOT\Shell.Application\

HKEY_CLASSES_ROOT\Shell.Application.1\

改名为其它的名字,如:改为Shell.Application_ChangeName 或 Shell.Application.1_ChangeName

HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值

注:操作均需要重新启动WEB服务后才会生效.

第四段:调用Cmd.exe

禁用Guests组用户调用cmd.exe

通过以上四步的设置基本可以防范目前比较流行的几种木马,但最有效的办法还是通过综合安全设置,将服务器、程序安全都达到一定标准,才可能将安全等级设置较高,防范更多非法入侵.

先停掉Serv-U服务

用Ultraedit打开ServUDaemon.exe

查找 Ascii:LocalAdministrator 和 #l@$ak#.lk;0@P

修改成等长度的其它字符就可以了,ServUAdmin.exe也一样处理.

另外注意设置Serv-U所在的文件夹的权限,不要让IIS匿名用户有读取的权限,否则人家下走你修改过的文件,照样可以分析出你的管理员名和密码.

不同站点使用不用的IIS用户.另外权限的设置要细致.

"NoRecentDocsMenu"=hex:01,00,00,00

"NoRecentDocsHistory"=hex:01,00,00,00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]

"DontDisplayLastUserName"="1"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]

"restrictanonymous"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Parameters]

"AutoShareServer"=dword:00000000

"AutoShareWks"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

"EnableICMPRedirect"=dword:00000000

"TcpMaxConnectResponseRetransmissions"=dword:00000001

"TcpTimedWaitDelay"=dword:0000001e

"EnablePMTUDiscovery"=dword:00000000

"NoNameReleaseOnDemand"=dword:00000001

"EnableDeadGWDetect"=dword:00000000

"PerformRouterDiscovery"=dword:00000000

"EnableICMPRedirects"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters]

"EnableDynamicBacklog"=dword:00000001

"DynamicBacklogGrowthDelta"=dword:0000000a

协议 IP协议端口 源地址 目标地址 描述 方式

ICMP -- -- -- ICMP 阻止

好了,全部的IP安全策略里的设置,可以根据实际情况,增加或删除端口

安全策略自动更新命令:GPUpdate /force (应用组策略自动生效不需重新启动)

开始菜单—管理工具—本地安全策略

A、本地策略——审核策略

审核策略更改 成功 失败

审核登录事件 成功 失败

审核对象访问 失败

审核过程跟踪 无审核

审核目录服务访问 失败

审核特权使用 失败

审核系统事件 成功 失败

审核账户登录事件 成功 失败

审核账户管理 成功 失败

B、本地策略——用户权限分配

关闭系统:只有Administrators组、其它全部删除.

通过终端服务拒绝登陆:加入Guests、User组

通过终端服务允许登陆:只加入Administrators组,其他全部删除

C、本地策略——安全选项

交互式登陆:不显示上次的用户名 启用

网络访问:不允许SAM帐户和共享的匿名枚举 启用

网络访问:不允许为网络身份验证储存凭证 启用

网络访问:可匿名访问的共享 全部删除

网络访问:可匿名访问的命 全部删除

网络访问:可远程访问的注册表路径 全部删除

网络访问:可远程访问的注册表路径和子路径 全部删除

帐户:重命名来宾帐户 重命名一个帐户

帐户:重命名系统管理员帐户 重命名一个帐户

还有很多设置!你可以多找找资料!

thinkphp怎么防止跨站请求

TP当中有一个叫 "表单令牌" 的东西,再每个表单中插入 表单令牌, 可以令网站避免csrf请求.

php配置防跨站、防跨目录安全

现在很多网站都是采用php建站,不少都是直接使用现在成熟的cms程序,这些php开发的cms系统本身安全性可能并不高,这时就需要我们在服务器做一些针对php程序配置防跨站、防跨目录等一些设置,可以有效的防止服务器上所有的php网站被恶意篡改.

适用范围及演示系统

演示系统:centos

防跨站、防跨目录安全设置方法

第1步:登录到linux系统终端.

[HOST=]

open_basedir=/wwwroot/

[PATH=/wwwroot/]

注:就如上代码添加完之后就是防跨站防跨目录的安全配置了,但是有一些缺点,就是比如说我们运行一些php探针等一些程序可能就是无法正常运行了,如果想让网站正常运行php探针的话需要在/tmp/后加上:/proc/

nginx现在有什么方法防止跨站

Nginx防跨目录与跨站配置方法

Nginx有一个缺陷,就是没有像apache的php_value_basedir给我们限制php文件访问目录,PHP低版本下,fastcgi 模式

[HOST=111cn.net]

代码如下 复制代码

open_basedir=/home/wwwroot/111cn.net/:/tmp/

[PATH=/home/wwwroot/111cn.net]

修改好了.

最后重启下php-fpm:sudo /etc/init.d/php-fpm restart

OK,.这样设置后.就能增强系统的安全性,PHP目前,折腾也只能在他所在的目录下设置啦

①.、解压php源代码不细说了.

/* {{{ php_check_open_basedir

*/

PHPAPI int php_check_open_basedir_ex(const char *path, int warn TSRMLS_DC)

{

/* Only check when open_basedir is available */

if (PG(open_basedir) *PG(open_basedir)) {

char *pathbuf;

char *ptr;

char *end;

char *env_doc_root;

if(PG(doc_root)){

env_doc_root = estrdup(PG(doc_root));

}

else{

env_doc_root = sapi_getenv("DOCUMENT_ROOT", sizeof("DOCUMENT_ROOT")-1 TSRMLS_CC);

if(env_doc_root){

int res_root = php_check_specific_open_basedir(env_doc_root, path TSRMLS_CC);

efree(env_doc_root);

if (res_root == 0) {

return 0;

errno = EPERM;

return -1;

// 添加的内容结束

pathbuf = estrdup(PG(open_basedir));

ptr = pathbuf;

while (ptr *ptr) {

end = strchr(ptr, DEFAULT_DIR_SEPARATOR);

if (end != NULL) {

*end = '';

end◆◆;

if (php_check_specific_open_basedir(ptr, path TSRMLS_CC) == 0) {

efree(pathbuf);

ptr = end;

if (warn) {

php_error_docref(NULL TSRMLS_CC, E_WARNING, "open_basedir restriction in effect. File(%s) is not

within the allowed path(s): (%s)", path, PG(open_basedir));

errno = EPERM; /* we deny permission to open it */

/* Nothing to check... */

/* }}} */

然后执行

make ZEND_EXTRA_LIBS='-liconv' make install

cp php.ini-dist /usr/local/php/etc/php.ini最后修改php.ini中的open_basedir改为:open_basedir =

"/var/tmp/:/tmp/"

可道云data目录搬迁,PHP防夸站设置

①.、Kodexplorer可道云的用户文件存储路径:

用户账户数据、群组等存储在 data/system/下;

用户文件、群组文件,存储在 data/User ;data/Group.每个用户独立一个文件夹,默认和用户名一致.

这个都是自建json数据库,文件夹目录的方式保存的

希望能给你帮助,你可以去后盾人那自学,最近听说他们在搞实训班培训的活动

thinkphp怎么防止跨站攻击

我记得,好似有一个叫"表单令牌" 的东东,可以查看具体的文档:

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章