一、背景
1、假设在D:/FF目录上部署了FTP服务器。
2、要求用户只能在D:/FF目录内操作资源。
3、如果没有对文件路径验证,可能会超出指定的目录,带来系统漏洞。
二、接口设计
boolean isInclude(String path1, String path2)
三、思路
1、各自把路径中所有的"\\"转成"/"。
2、去除多余的路径符。
3、把"·/"去除。
4、如果是"··/",去除前一个目录。
5、两个路径经过上述处理,进行判断:
path2是不是以path1的内容为前缀。
如果是:在规定的目录范围内,拥有权限。
如果不是:超出范围,操作没有权限,失败。