Pages

Wednesday, 29 March 2023

web项目布署安全问题初识

一份系统技术规范,与安全相关的。这里总结一下:

代码相关:

1.sql注入,这个大家估计都知道,用预处理解决.这个问题很简单,但是在编程时只求完成任务,很多地方都没注意,在日后编程中要认真了。

2.cookie,用户登录时将用户名与密码加密后存放在cookie中,虽然加过密但是在firebug之类的工具下用document.cookie还是可以看到密文的,需要设置httponly.在servlet3.0规范中可以设置Cookie对象的httponly属性。对于之前的版本,需要直接response.setHeader来设置cookie,在字符串最后最后加上httponly就行了(由于最后为了简单直接将cookie去掉了,代码丢失),测试中发现使用这种方法只能为一个cookie设置httponly.一般来说用户与密码会分为两个cookie对象,那么用response.setHeader要调用两次,前一次会被后面的调用override,如果只调一次,将username与password都加上去,测试时发现不能成功。

3.flash安全配置,只允许信任网站的请求

4.尽管不使用第三方链接形式的js,iframe防止xss

 

 

tomcat相关:

一.tomcat默认的管理界面及doc信息要禁用

1.取消tomcat默认主页,禁止管理及文档页面的访问(解决可直接查看文件列表的目录、URL存在内部IP地址泄露、URL存在电子邮件地址模式、部分的无效链接、系统路径信息泄露)

a)tomcat/conf/server.xml

找到

 <Host name="localhost" appBase="webapps"

       unpackWARs="true" autoDeploy="true"

       xmlValidation="false" xmlNamespaceAware="false">

在后面添加<Context path="" docBase="smartspeed" debug="0" reloadable="true" />,将smartspeed设为tomcat默认主页,可以直接ip:port访问主页

 

b)删除tomcat/webapps下面的ROOT及tomcat-docs目录

tomcat/webapps/ROOT

tomcat/webapps/tomcat-docs

禁止管理页面与文档页面的使用.

 

2.禁用不安全的HTTP方法(禁用掉PUT/DELETE/HEAD/OPTIONS/TRACE)

在tomcat/conf/web.xml的结束标签</webapp>之前加入

 <security-constraint>

        <web-resource-collection>

            <url-pattern>/*</url-pattern>

            <http-method>PUT</http-method>

            <http-method>DELETE</http-method>

            <http-method>HEAD</http-method>

            <http-method>OPTIONS</http-method>

            <http-method>TRACE</http-method>

        </web-resource-collection>

        <auth-constraint></auth-constraint>

    </security-constraint>

    <login-config>

        <auth-method>BASIC</auth-method>

    </login-config>

 
3.将项目中未使用到的链接全部删除(不要小看这个)

No comments:

Post a Comment