久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

spring mvc url匹配禁用后綴訪問操作

瀏覽:2日期:2023-06-30 17:48:53
spring mvc url匹配禁用后綴訪問

在spring mvc中默認 訪問url 加任意后綴名都能訪問

比如:你想訪問 /login ,但是通過 /login.do /login.action /login.json 都能訪問

通常來說可能沒有影響,但對于權限控制,這就嚴重了。

權限控制通常有兩種思路:1)弱權限控制

允許所有url通過,僅對個別重要的url做權限控制。此種方式比較簡單,不需要對所有url資源進行配置,只配置重要的資源。

2)強權限控制

默認禁止所有url請求通過,僅開放授權的資源。此種方式對所有的url資源進行控制。在系統種需要整理所有的請求,或者某一目錄下所有的url資源。這種方式安全控制比較嚴格,操作麻煩,但相對安全。

如果用第二種方式,則上面spring mvc的訪問策略對安全沒有影響。

但如果用第一種安全策略,則會有很大的安全風險。

例如:我們控制了/login 的訪問,但是我們默認除/login的資源不受權限控制約束,那么攻擊者就可以用 /login.do /login.xxx 來訪問我們的資源。

在spring 3.1之后,url找對應方法的處理步驟,第一步,直接調用RequestMappingHandlerMapping查找到相應的處理方法,第二步,調用RequestMappingHandlerAdapter進行處理

我們在RequestMappingHandlerMapping中可以看到

/** * Whether to use suffix pattern match for registered file extensions only * when matching patterns to requests. * <p>If enabled, a controller method mapped to '/users' also matches to * '/users.json' assuming '.json' is a file extension registered with the * provided {@link #setContentNegotiationManager(ContentNegotiationManager) * contentNegotiationManager}. This can be useful for allowing only specific * URL extensions to be used as well as in cases where a '.' in the URL path * can lead to ambiguous interpretation of path variable content, (e.g. given * '/users/{user}' and incoming URLs such as '/users/john.j.joe' and * '/users/john.j.joe.json'). * <p>If enabled, this flag also enables * {@link #setUseSuffixPatternMatch(boolean) useSuffixPatternMatch}. The * default value is {@code false}. */public void setUseRegisteredSuffixPatternMatch(boolean useRegisteredSuffixPatternMatch) { this.useRegisteredSuffixPatternMatch = useRegisteredSuffixPatternMatch; this.useSuffixPatternMatch = (useRegisteredSuffixPatternMatch || this.useSuffixPatternMatch);}

那么如何來配置呢?

<mvc:annotation-driven> <mvc:path-matching suffix-pattern='false' /> </mvc:annotation-driven>

在匹配模式時是否使用后綴模式匹配,默認值為true。這樣你想訪問 /login ,通過 /login.* 就不能訪問了。

spring mvc 之 請求url 帶后綴的情況

RequestMappingInfoHandlerMapping 在處理http請求的時候, 如果 請求url 有后綴,如果找不到精確匹配的那個@RequestMapping方法。

那么,就把后綴去掉,然后.* 去匹配,這樣,一般都可以匹配。 比如有一個@RequestMapping('/rest'), 那么精確匹配的情況下, 只會匹配/rest請求。

但如果我前端發來一個 /rest.abcdef 這樣的請求, 又沒有配置 @RequestMapping('/rest.abcdef') 這樣映射的情況下, 那么@RequestMapping('/rest') 就會生效。

原理呢?處理鏈是這樣的:

at org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getMatchingPattern(PatternsRequestCondition.java:254)at org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getMatchingPatterns(PatternsRequestCondition.java:230)at org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getMatchingCondition(PatternsRequestCondition.java:210)at org.springframework.web.servlet.mvc.method.RequestMappingInfo.getMatchingCondition(RequestMappingInfo.java:214)at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getMatchingMapping(RequestMappingInfoHandlerMapping.java:79)at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getMatchingMapping(RequestMappingInfoHandlerMapping.java:56)at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.addMatchingMappings(AbstractHandlerMethodMapping.java:358)at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:328)at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:299)at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:57)at org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:299)at org.springframework.web.servlet.DispatcherServlet.getHandler(DispatcherServlet.java:1104)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:916)關鍵是PatternsRequestCondition, 具體來說是這個方法:

AbstractHandlerMethodMapping 的getHandlerInternal: protected HandlerMethod getHandlerInternal(HttpServletRequest request) throws Exception {String lookupPath = this.getUrlPathHelper().getLookupPathForRequest(request);if (this.logger.isDebugEnabled()) { this.logger.debug('Looking up handler method for path ' + lookupPath);}HandlerMethod handlerMethod = this.lookupHandlerMethod(lookupPath, request);// 這里是關鍵,它去尋找,找到了就找到了,找不到就不會再去尋找了if (this.logger.isDebugEnabled()) { if (handlerMethod != null) {this.logger.debug('Returning handler method [' + handlerMethod + ']'); } else {this.logger.debug('Did not find handler method for [' + lookupPath + ']'); }}return handlerMethod != null ? handlerMethod.createWithResolvedBean() : null; } protected HandlerMethod lookupHandlerMethod(String lookupPath, HttpServletRequest request) throws Exception {List<AbstractHandlerMethodMapping<T>.Match> matches = new ArrayList();List<T> directPathMatches = (List)this.urlMap.get(lookupPath); // directPathMatches, 直接匹配, 也可以說是 精確匹配if (directPathMatches != null) { this.addMatchingMappings(directPathMatches, matches, request);// 如果能夠精確匹配, 就會進來這里}if (matches.isEmpty()) { this.addMatchingMappings(this.handlerMethods.keySet(), matches, request);// 如果無法精確匹配, 就會進來這里}if (!matches.isEmpty()) { Comparator<AbstractHandlerMethodMapping<T>.Match> comparator = new AbstractHandlerMethodMapping.MatchComparator(this.getMappingComparator(request)); Collections.sort(matches, comparator); if (this.logger.isTraceEnabled()) {this.logger.trace('Found ' + matches.size() + ' matching mapping(s) for [' + lookupPath + '] : ' + matches); } AbstractHandlerMethodMapping<T>.Match bestMatch = (AbstractHandlerMethodMapping.Match)matches.get(0); if (matches.size() > 1) {AbstractHandlerMethodMapping<T>.Match secondBestMatch = (AbstractHandlerMethodMapping.Match)matches.get(1);if (comparator.compare(bestMatch, secondBestMatch) == 0) { Method m1 = bestMatch.handlerMethod.getMethod(); Method m2 = secondBestMatch.handlerMethod.getMethod(); throw new IllegalStateException('Ambiguous handler methods mapped for HTTP path ’' + request.getRequestURL() + '’: {' + m1 + ', ' + m2 + '}');} } this.handleMatch(bestMatch.mapping, lookupPath, request); return bestMatch.handlerMethod;} else { return this.handleNoMatch(this.handlerMethods.keySet(), lookupPath, request);} }public List<String> getMatchingPatterns(String lookupPath) {List<String> matches = new ArrayList();Iterator var3 = this.patterns.iterator();while(var3.hasNext()) { String pattern = (String)var3.next(); // pattern 是 @RequestMapping 提供的映射 String match = this.getMatchingPattern(pattern, lookupPath); // lookupPath + .* 后能夠匹配pattern, 那么就不為空 if (match != null) {matches.add(match);// 對于有后綴的情況, .* 后 }}Collections.sort(matches, this.pathMatcher.getPatternComparator(lookupPath));return matches; } 最關鍵是這里 getMatchingPatterns : private String getMatchingPattern(String pattern, String lookupPath) {if (pattern.equals(lookupPath)) { return pattern;} else { if (this.useSuffixPatternMatch) {if (!this.fileExtensions.isEmpty() && lookupPath.indexOf(46) != -1) { Iterator var5 = this.fileExtensions.iterator(); while(var5.hasNext()) {String extension = (String)var5.next();if (this.pathMatcher.match(pattern + extension, lookupPath)) { return pattern + extension;} }} else { boolean hasSuffix = pattern.indexOf(46) != -1; if (!hasSuffix && this.pathMatcher.match(pattern + '.*', lookupPath)) {return pattern + '.*'; // 關鍵是這里 }} } if (this.pathMatcher.match(pattern, lookupPath)) {return pattern; } else {return this.useTrailingSlashMatch && !pattern.endsWith('/') && this.pathMatcher.match(pattern + '/', lookupPath) ? pattern + '/' : null; }} }

而對于AbstractUrlHandlerMapping ,匹配不上就是匹配不上, 不會進行 +.* 后在匹配。

關鍵方法是這個:

protected Object lookupHandler(String urlPath, HttpServletRequest request) throws Exception {Object handler = this.handlerMap.get(urlPath);if (handler != null) { if (handler instanceof String) {String handlerName = (String)handler;handler = this.getApplicationContext().getBean(handlerName); } this.validateHandler(handler, request); return this.buildPathExposingHandler(handler, urlPath, urlPath, (Map)null);} else { List<String> matchingPatterns = new ArrayList(); Iterator var5 = this.handlerMap.keySet().iterator(); while(var5.hasNext()) {String registeredPattern = (String)var5.next();if (this.getPathMatcher().match(registeredPattern, urlPath)) { matchingPatterns.add(registeredPattern);} } String bestPatternMatch = null; Comparator<String> patternComparator = this.getPathMatcher().getPatternComparator(urlPath); if (!matchingPatterns.isEmpty()) {Collections.sort(matchingPatterns, patternComparator);if (this.logger.isDebugEnabled()) { this.logger.debug('Matching patterns for request [' + urlPath + '] are ' + matchingPatterns);}bestPatternMatch = (String)matchingPatterns.get(0); } if (bestPatternMatch != null) {handler = this.handlerMap.get(bestPatternMatch);String pathWithinMapping;if (handler instanceof String) { pathWithinMapping = (String)handler; handler = this.getApplicationContext().getBean(pathWithinMapping);}this.validateHandler(handler, request);pathWithinMapping = this.getPathMatcher().extractPathWithinPattern(bestPatternMatch, urlPath);Map<String, String> uriTemplateVariables = new LinkedHashMap();Iterator var9 = matchingPatterns.iterator();while(var9.hasNext()) { String matchingPattern = (String)var9.next(); if (patternComparator.compare(bestPatternMatch, matchingPattern) == 0) {Map<String, String> vars = this.getPathMatcher().extractUriTemplateVariables(matchingPattern, urlPath);Map<String, String> decodedVars = this.getUrlPathHelper().decodePathVariables(request, vars);uriTemplateVariables.putAll(decodedVars); }}if (this.logger.isDebugEnabled()) { this.logger.debug('URI Template variables for request [' + urlPath + '] are ' + uriTemplateVariables);}return this.buildPathExposingHandler(handler, bestPatternMatch, pathWithinMapping, uriTemplateVariables); } else {return null; }} }

當然, 或許我們可以設置自定義的PathMatcher ,從而到達目的。 默認的 是AntPathMatcher 。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 欧美成人免费观看 | 日韩污视频在线观看 | 日韩综合在线 | 色综合99 | 国产精品一二三 | 禁果av一区二区三区 | 欧美日本韩国一区二区 | 中文字幕一区二区三区乱码在线 | 成人av福利 | av在线一区二区 | 成人情趣视频 | 欧美日韩激情四射 | 亚洲精品国产电影 | 亚洲国产精品一区二区www | 亚洲欧美aa | 97久久精品人人做人人爽50路 | www.久久久| 欧美激情综合色综合啪啪五月 | 99精品国产一区二区 | 国产精品一区亚洲二区日本三区 | 丝袜 亚洲 另类 欧美 综合 | 久久亚洲国产精品 | 91电影在线 | 精品亚洲一区二区三区 | 伊人网视频在线观看 | 三级黄色片在线免费观看 | 久久久国产精品 | 深夜福利1000 | 日韩在线观看视频一区二区三区 | 日韩色图在线观看 | 国产精品久久久久久亚洲调教 | 国产成人av在线播放 | 亚洲一区二区在线免费观看 | 国产免费一区二区 | 久久久一区二区三区 | 精品久久久久久久久久久久久久 | 久久国产精品久久精品 | 久久亚洲视频 | 欧美日韩中文字幕在线 | 最新伦理片 | 午夜激情在线播放 | 欧美涩涩网站 | 国产毛片在线看 | 久久精品一区二区三区不卡牛牛 | 日韩精品免费在线观看 | 黄色免费av | 一区二区不卡 | 欧美午夜一区 | 国产亚洲精品精品国产亚洲综合 | 亚洲综合无码一区二区 | 每日更新av | 久久久久网站 | 国产一级免费网站 | av免费资源 | 成人在线播放网站 | 国产一区二区观看 | 另类sb东北妇女av | 91精品国产乱码久久久久久久久 | 久久综合九色综合欧美狠狠 | aaaaaa毛片 | 久久久久久国产一级毛片高清版 | 一区二区三区的视频 | 美女网站视频免费黄 | 国产精品一区二区三区在线 | 在线色av | 天天操天天干天天 | 精品国产一区二区三区在线观看 | 国产欧美精品一区二区三区 | 免费看的毛片 | 在线观看成人 | 色婷婷av久久久久久久 | 免费在线观看一级毛片 | 国产精品久久久久久av公交车 | 中文字幕 亚洲一区 | 91av导航| 黄色网在线 | 亚洲精品久久久久久久久久 | 国产亚洲精品精品国产亚洲综合 | 日韩成人精品在线 | 精品一区二区三区四区 | 久久99精品久久久久久按摩秒播 | 午夜免费观看视频 | 久久久久在线 | 中国91视频 | 久久久久久久久久久久91 | 激情综合久久 | 国产高清一区 | 国产极品视频在线观看 | 欧美亚洲日本 | 自拍偷拍精品 | 亚洲精品欧美精品 | 九九热这里 | 亚洲视频免费在线 | 久久亚洲国产精品日日av夜夜 | 国产第一区二区 | 欧美一级免费 | 亚洲成人免费在线 | 亚洲精品一区二区网址 | 干狠狠| 亚洲美女av在线 | 国产一区在线免费观看 | 精品福利av导航 | 高清国产一区二区三区 | 美女黄视频网站 | 成版人性视频 | 81精品国产乱码久久久久久 | 日韩一区二区三区在线观看 | 精品一区二区三区中文字幕 | 精品久久久久久久人人人人传媒 | 精品视频在线视频 | 国产激情影院 | 一区二区三区国产 | www.麻豆视频 | 噜噜噜在线 | 日韩欧美国产一区二区三区 | 一区二区三区四区在线 | 91综合网| 国产精品一区二区久久 | 午夜精品久久久久久久久久久久 | 欧美一区| 国产在线一 | 欧美日韩国产一区二区三区在线观看 | 国产乡下妇女做爰视频 | 欧美一区二区三区黄 | 国产精品久久国产精品 | 成人免费视频网站在线观看 | 精品美女久久久 | 亚洲区视频在线 | 久久99精品久久久久久琪琪 | 国产精品久久久久久久福利院 | 91精品国产综合久久久久久蜜月 | 久久久久国产一区二区三区 | 啊v视频 | 二区久久| 99热影院| 麻豆专区一区二区三区四区五区 | 亚洲午夜一区 | 久久小视频| 精品日韩在线 | 国产中文在线播放 | 日韩免费av网站 | 欧美一级毛片免费看 | 四虎新网站 | 欧美福利在线 | 日韩在线不卡 | 宅男伊人| 色资源站| 国产精品毛片无码 | 国产精品久久久久久久久久免费 | 欧美伦理一区二区 | 久久久亚洲精品视频 | www.欧美日韩| 91成人免费在线观看 | 久草新| 91精品一区二区三区久久久久久 | 激情久久av一区av二区av三区 | 国产精品久久久久久久久久久久久 | 91亚洲国产精品 | 国产精品视频网 | 国产精品二区三区在线观看 | 成人欧美一区二区三区黑人孕妇 | 亚洲精品久久久久久久久久久 | 91精品国产综合久久久久 | 18久久久久久 | 亚洲在线一区二区 | 中文字幕亚洲欧美日韩在线不卡 | 伊人二区| 无套内谢孕妇毛片免费看红桃影视 | 国产成人免费视频网站高清观看视频 | 精品一区二区久久久久久久网站 | 亚洲精品一区二区三区麻豆 | 在线99视频| 日本在线观看一区 | 91国内精品| www亚洲成人| 国产大胆自拍 | 国产男人的天堂 | 国产精品永久 | 欧美视频免费 | 在线视频亚洲 | 在线观看欧美日韩 | 山岸逢花在线观看无删减 | 情趣视频在线免费观看 | 国产精品久久久 | 欧美日韩视频在线 | 精品国产一区二区三区在线观看 | 91中文字幕在线观看 | 欧美视频一区二区三区在线观看 | 亚洲一区二区在线 | 久一在线 | 精品国产乱码久久久久久1区2区 | 国产高清中文字幕 | 亚洲影视一区 | 欧美日韩一区不卡 | 国产无套一区二区三区久久 | 亚洲一区二区三区高清 | 久久婷婷色 | 亚洲成人免费电影 | 亚洲精品视 | 欧美日韩福利视频 | 日韩三级网 | 欧美国产一区二区三区 | 午夜一区二区三区 | 看毛片网站 | 婷婷亚洲五月 | 国产一区二区精品在线观看 | 亚洲国产精品久久久久 | 欧美成人免费在线视频 | 欧美福利视频 | 伊人久久综合 | 日韩在线观看视频一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | av在线日韩 | 中文字幕在线导航 | 91偷拍精品一区二区三区 | 嫩草91| 亚洲免费在线 | 国产精品久久久久久吹潮 | 欧美性猛交一区二区三区精品 | 中文字幕亚洲欧美精品一区四区 | 青青久草| 欧美在线视频网 | 在线a电影 | 婷婷激情综合 | 亚洲国产精品久久 | 在线观看黄色大片 | 日韩在线观看视频一区二区 | 日韩字幕一区 | 午夜电影在线看 | 欧美成人黄色小说 | 久久精品视频免费观看 | 国产视频一区二区 | 华人黄网站大全 | 久精品在线 | 中文字幕免费看 | 国内精品一区二区 | 亚洲 中文 欧美 日韩 在线观看 | 国产精品2区 | 成人精品视频99在线观看免费 | 亚洲精品久久久一区二区三区 | 日韩有码一区 | 久久免费看 | 国产精品久久久久久久久久久久 | 国产成人91 | 欧美日韩在线一区二区 | 欧美在线三级 | 国产有码 | 一级毛片视屏 | 一区二区在线视频 | 亚洲三级在线观看 | 免费午夜电影 | 狠狠久久综合 | 午夜免费观看视频 | 国产欧美综合一区二区三区 | 国产乱码精品一区二区三区五月婷 | 欧美在线免费 | 999精品嫩草久久久久久99 | 亚洲小视频| 久久天堂网 | 一级欧美日韩 | 一级毛片在线免费看 | 久久伊99综合婷婷久久伊 | 羞羞视频在线观免费观看 | 日韩中文在线 | 久久av一区二区 | 精品日韩欧美一区二区三区在线播放 | 日韩在线观看视频免费 | 日操| av在线成人| 亚洲三级在线看 | 欧美久久久网站 | 国产99一区二区 | jizz18毛片 | 亚洲精品久久久久久久久久久 | 国产欧美综合一区二区三区 | 国产激情视频在线 | 亚洲免费在线视频 | 91精品国产综合久久精品 | 国产一区二区视频在线观看 | 国产中文在线 | 亚洲精品免费观看 | 国产伦精品一区二区三区在线 | 国产美女精品 | 国产免费亚洲 | 国产一级黄色大片 | 一区二区三区久久 | 桃色视频在线播放 | 美女视频一区二区三区 | 亚洲成人精品在线观看 | 亚洲三区在线观看 | 国产成人免费视频网站高清观看视频 | 久久999视频| 国产欧美日韩综合精品一区二区 | 亚洲国产精品99久久久久久久久 | 欧美日韩视频在线第一区 | 在线看一区二区 | 叶山小百合av一区二区 | 一区二区亚洲视频 | 亚洲成人二区 | 日本亚洲精品一区二区三区 | 在线免费视频成人 | 男人超碰| 久久中文字幕视频 | 成人在线一区二区三区 | 国产精品日日夜夜 | 人人爱超碰 | 在线日韩视频 | 日韩一区二区在线观看 | 成人一级视频 | 久久久久久久国产精品视频 | 国产精品美女久久久久久不卡 | 日韩亚洲视频 | 亚洲免费视频一区二区 | 久久精品国产v日韩v亚洲 | 精产国产伦理一二三区 | 一级片在线免费观看视频 | 国产精品国产精品国产专区不卡 | 夜夜爆操| 色婷婷av久久久久久久 | 国产精品无码久久久久 | 成人免费在线观看 | 青草久操| 日日做夜夜爽毛片麻豆 | 欧美精品一级二级 | 亚洲欧美日韩在线一区二区 | 丁香午夜 | 国产精品亚洲一区二区三区在线 | 四虎影院在线 | 亚洲男人的天堂在线 | 久久精品网 | 久久精品亚洲一区二区 | 男女中文字幕 | 欧美日韩精品亚洲 | 欧美精产国品一二三区 | 91久色| 久久精品国产亚洲blacked | 欧美日韩中文字幕在线播放 | 久久久久久久久久久亚洲 | 人人爽在线 | 亚洲综合一区二区 | 日韩在线免费 | 中文字幕 国产精品 | 亚洲在线播放 | 久久久久久国产视频 | 久久精品a一级国产免视看成人 | 日韩在线无 | 四色永久| 成人男女激情免费视频 | 国产精品91网站 | 日韩成人影视 | 日本末发育嫩小xxxx | 麻豆久久精品 | 精品国产乱码久久久久久蜜臀 | 国产小视频在线播放 | 亚洲一级毛片 | 日韩在线不卡 | 亚洲欧洲无码一区二区三区 | 青草福利 | 在线久草 | aaa在线观看 | 久久久97| 欧美a在线| 99久久精品一区二区 | 成人免费xxxxxxx | 国产一级片一区二区三区 | 欧美日韩精品电影 | 成人久久久久久久久 | 国产精品久久精品 | av一级久久 | 国产三级视频 | 一本大道久久a久久精二百 亚洲欧美高清 | 久草免费在线 | 中文字幕久久精品 | 国产亚洲一区二区精品 | 国产精品欧美日韩 | 中文字幕不卡在线88 | 国产成人av网站 | 在线观看国精产品二区1819 | 成人福利视频网 | 中文字幕 亚洲一区 | 国产综合精品一区二区三区 | 日本欧美国产 | 国产精品伊人影院 | 麻豆91在线观看 | 欧美成人在线免费视频 | 天天玩天天操天天射 | 中文精品一区二区三区 | 日韩中文字幕免费在线 | 亚洲一区二区在线播放 | 羞羞视频在线免费观看 | 91玖玖 | 亚洲成人一区二区三区 | 亚洲男人天堂2024 | 成人国产精品一级毛片视频 | 爱色av| 91视频8mav| 中文字幕在线导航 | 久久精品亚洲精品 | 午夜影剧院 | 欧美性生活视频 | 成人在线免费视频 | 成人免费在线观看视频 | 在线视频三级 | 国产成人精品高清久久 | 99伊人| 亚洲精品在线看 | 日本三级在线观看网站 | 日韩亚洲视频在线观看 | 一区二区精品视频 | 啵啵影院午夜男人免费视频 | 狠狠搞狠狠搞 | 日韩欧美国产成人一区二区 | 欧美国产精品一区 | 99国产精品99久久久久久 | cao视频| 久久久久久久久国产 | 午夜影院18| 午夜在线小视频 | 日韩免费av一区二区 | 亚洲男人天堂网 | 狠狠爱亚洲 | 亚洲精品久久久久久久久久久 | 成人看的羞羞视频免费观看 | 欧美精品免费在线观看 | 激情小视频在线观看 | 日韩午夜电影在线观看 | 国产精品九九九 | 精品国产乱码久久久久久蜜柚 | 99动漫| 一区二区三区在线播放 | 亚洲视频免费 | 亚洲成av人片一区二区梦乃 | 一区二区中文 | 国产亚洲欧美精品永久 | 欧美日一区 | 国产精品久久久久久久久久久久冷 | av影音在线| 999久久久 | 国产精品毛片一区二区三区 | 亚洲精品第一区在线观看 | 国产欧美一区二区三区在线看 | 日韩理伦在线 | 久久久精品欧美 | 香蕉大人久久国产成人av | 欧美精品久久久久 | 亚洲一区二区在线视频 | 亚洲一区精品视频 | 婷婷五月色综合 | 国产精品视频 | 日本免费在线 | 久久艹久久| av片在线免费观看 | 亚洲巨乳自拍在线视频 | 色婷婷综合久久久中字幕精品久久 | 日韩精品免费视频 | 美女午夜视频 | 中文字幕_第2页_高清免费在线 | 欧美精品一二区 | 日韩免费av一区二区 | 久久国产电影 | 国产日韩久久 | 国产精品一区二区三 | 亚洲成人观看 | 日韩中文字幕av | 国产精品乱码久久 | 国产精品99一区二区三区 | 欧美精品一区二区三区在线 | 亚洲成人久久久 | 久草久草久草 | 久久久精品一区 | 可以在线观看的黄色 | 91操操| 亚洲最新av | 国产精品乱码一二三区的特点 | 亚洲成人aaa | 久久这里精品 | 亚洲激情视频 | 久久久国产精品 | 中文字幕欧美在线 | 亚洲欧美日本在线 | 久草视频免费看 | 免费视频一区二区三区在线观看 | 女男羞羞视频网站免费 | 天堂av中文字幕 | 国产伊人99 | 欧美在线小视频 | 日本在线不卡视频 | 亚洲欧美91 | 99资源| 久久在线视频 | 久久久久国产精品免费免费搜索 | 一区二区三区四区在线 | 精品99在线| 久久国产精品久久久久久久久久 | 婷婷国产| 欧美一级片在线 | 日韩中文一区二区三区 | 日日久 | 欧美嘿咻 | a级在线观看免费 | 日韩欧美在线观看一区二区三区 | 狠狠综合久久av一区二区老牛 | 激情一区 | 国产欧美中文字幕 | 在线观看视频一区二区 | 欧美激情在线精品一区二区三区 | 欧美国产91 | 黄色精品一区二区 | 欧美一区二区三区在线观看视频 | 在线观看免费黄色小视频 | 久久久久久国产免费视网址 | 欧美一区免费 | 欧美成人激情视频 | 国产做a| 久久久久国产一区二区三区 | 免费一级在线观看 | 午夜窝窝 | 婷婷激情五月 | 中文字幕一区二区在线观看 | 亚洲欧洲tv | 久久精品不卡 | 婷婷激情综合 | 欧美日韩在线精品 | 91麻豆精品国产91久久久更新资源速度超快 | 超碰综合 | 91精品久久久久久久久 | 综合久久综合久久 | 九九热在线免费视频 | 中文字幕一区二区在线观看 | 一级毛片国产 | 免费一区 | 日本久久久一区二区三区 | 国产一区av在线 | 亚州中文| 国产超碰人人爽人人做人人爱 | 亚洲一区二区三区四区的 | 国产大学生情侣呻吟视频 | 99免费在线播放99久久免费 | 国产精品成人av | 91久久久久久久久久久久久久 | 久久精品一区二区三区中文字幕 | 精品免费国产 | 人妖一区 | 91精品国产综合久久久久久软件 | 99国产精品99久久久久久 | 久久成人国产精品 | 日韩中出| 台湾av在线 | 欧美一级精品片在线看 | 欧美手机在线 | 一级片在线观看 | 久热精品视频在线播放 | 黄色a视频| 久久国产久| 欧美色综合天天久久综合精品 | 亚洲免费视频一区 | 免费国产wwwwwww网站 | 午夜欧美一区二区三区在线播放 | 97伦理电影 | 成人久久久 | 久久国产精品免费一区二区三区 | 黄色国产大片 | 一级黄色片网站 | 国产一区欧美 | 91网站在线看| 一本岛在线视频 | 在线中文字幕第一页 | 欧美日韩一区二区三区四区 | 综合色久| 欧美性猛交一区二区三区精品 | 欧美激情第二页 | 午夜影院a | 国产99久久久精品视频 | 在线观看亚洲一区二区三区 | 午夜成人免费电影 | 久久二| 久久精品欧美一区二区三区麻豆 | 国产成人一区二区三区影院在线 | 国产在线中文字幕 | 激情久久av一区av二区av三区 | 国产精品久久777777 | 精品久久久久一区二区国产 | 欧美日韩亚洲视频 | 久久伊人影院 | 国产成人精品免高潮在线观看 | 日韩性xxx | 亚洲一区二区在线视频 | 99国产视频 | 精品久久久久久久久久久院品网 | 欧美视频三区 | 国产农村妇女精品 | 日韩色在线 | 久久久一 | 欧美日韩亚洲二区 | 日本黄色一级片免费看 | 三级免费网站 | 中文日韩在线 | 国产欧美精品一区二区三区四区 | 国产精品免费av | 中文字幕 国产精品 | 动漫羞免费网站中文字幕 | 在线观看国产视频 | 欧美日韩国产中文 | 欧美色性| 越南性xxxx精品hd | 午夜国产在线 | 日本成人中文字幕在线观看 | 天天干夜夜骑 | 婷婷色av | 91看片在线观看 | 亚洲高清视频在线 | 日韩精品成人 | 久热精品视频 | 91视频在线| 国产精品视频免费播放 |