- [BJDCTF2020]JustRE
32304353
安全汇编
打开程序发现需要进行点击获取flag拖入IDA进行分析F5挨个查看代码发现疑似falg的数据经过判断,需要点击19999次获得flag把%d带入即可获取flagflag{1999902069a45792d233ac}提交flag解题思路参考文章BUUCTF-[BJDCTF2020]JustRE1-CSDN博客
- SSTI模板注入绕过
墨菲斯托888
python开发语言
SSTI之细说jinja2的常用构造及利用思路-蚁景网安实验室-博客园1.{%%}绕过过滤{{}}想要回显内容在外面加个print{%print("",__class__)%}2.getitem()绕过[]过滤在Python中,__getitem__是一个特殊方法,用于实现对象的索引访问(例如obj[117])classMyClass:def__init__(self,data):self.dat
- 模板注入漏洞(SSTI)学习笔记
栀寒老醑
学习笔记网络安全安全web安全系统安全安全架构
模板注入漏洞(SSTI)学习笔记1.模板注入简介什么是模板引擎?模板引擎用于将动态数据渲染到静态页面(如HTML)。例如,Jinja2(Python)、Twig(PHP)等。示例:#Flask中使用Jinja2渲染模板
[email protected]('/')defindex():user_input=request.args.get('name')
- buuctf-变异凯撒
qis_qis
crypto其他
凯撒密码作为最古老的密码体制之一,相信大多数人都知道,即简单的移位操作,那么问题来了,变异的凯撒密码又会是什么呢?拿到题先比对acsii码值对比表:acsii码通过上面的acsii码值对比表可以看到第一个字符向后移了5,第二个向后移了6,第三个向后移了7,以此类推,很容易想到变异凯撒即每个向后移的位数是前一个加1:str="afZ_r9VYfScOeO_UL^RWUc"k=5foriinstr:p
- buuctf-Quoted-printable
qis_qis
crypto
解压打开:=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6刚开始看到这一个字符串,误以为是什么编码特有的格式直到后面发现标题即提示,即Quoted-printable也是一种编码:得到flag:那你也很棒哦
- RootersCTF2019 I ♥ Flask
尸者狗
#buuctfpython安全漏洞安全
知识点url参数爆破、ssti信息收集看了别人的wp,才知道http参数这方面的信息收集这里使用arjun,当然也可以万能的burpsuitepython3arjun.py-uhttp:xxxxxxxxxxx.buuoj.cn/--get得到参数name改成/?name={{3*3}}利用和getflag获取当前目录下文件列表xxxxx.cn/?name={{config.__class__.__
- 138,【5】buuctf web [RootersCTF2019]I_<3_Flask
rzydal
flaskpython后端
进入靶场这段代码是利用Python的类继承和反射机制来尝试执行系统命令读取flag.txt文件内容''.__class__:空字符串对象调用__class__属性,得到str类,即字符串的类型。__class__.__base__:str类的__base__属性指向其基类,在Python中str是新式类,其基类是object。__base__.__subclasses__():object类的__
- 141,【1】buuctf web [SUCTF 2019]EasyWeb
rzydal
web安全
进入靶场代码审计18){die('Oneinchlong,oneinchstrong!');}//使用正则表达式检查$hhh是否包含特定字符集(包括一些常见字符和控制字符等),如果包含则终止脚本执行if(preg_match('/[\x00-0-9A-Za-z\'"\`~_&.,|=[\x7F]+/i',$hhh))die('Trysomethingelse!');//获取$hhh中使用到的字符,
- BUUCTF 逆向工程(reverse)之Java逆向解密
若丶时光破灭
CTF-逆向工程CTF逆向工程
程序员小张不小心弄丢了加密文件用的秘钥,已知还好小张曾经编写了一个秘钥验证算法,聪明的你能帮小张找到秘钥吗?注意:得到的flag请包上flag{}提交下载好题目后,发现它是个以.class为后缀的。所以用JD-GUI打开这个文件。就可以看到Java代码importjava.util.ArrayList;importjava.util.Scanner;publicclassReverse{publi
- BUUCTF——[极客大挑战 2019]PHP
south_1
webphpphp
打开题目,页面上显示说习惯备份,尝试下载备份www.zip,下载后打开查看flag文件里并不是flag,查看其他的在class文件中发现代码,应该是让我们反序列化,给出源代码username=$username;$this->password=$password;}function__wakeup(){$this->username='guest';}function__destruct(){if
- BUUCTF Crypto题目记录
Vigorousy
密码学
MD5e00cf25ad42683b3df678c61f42c6bda进行MD5加密flag{admin1}Url编码%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7dflag{and1=1}看我回旋踢synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}观察已知字符串已经存在flag雏形,猜测为凯撒密码flag{5cd1004d-86a5
- 知识点(SSTI漏洞/flask框架/tonado框架)
莫名有雪
flaskpython
SSTISSTI漏洞即服务器端模板注入漏洞(Server-SideTemplateInjection)。原理服务器端模板注入是攻击者利用应用程序中模板引擎的漏洞,通过注入恶意代码到模板中,从而在服务器端执行任意代码或获取敏感信息的攻击方式。模板引擎通常用于将动态数据与固定的模板相结合,生成最终的HTML、XML或其他格式的文档。模版实际指,如:搜索框常见的模板引擎及漏洞示例Jinja2:在Pyth
- SSTI 服务器端模板注入(Server-Side Template Injection)
shiyispoder
安全pythonphp
1.flask的运作流程(原理)
[email protected]('/index/')defhello_word():return'helloword'route装饰器的作用是将函数与url绑定起来。例子中的代码的作用就是当你访问http://127.0.0.1:5000/index的时候,flask会返回helloword。2.渲染方法flask的渲染方法有rende
- BUUCTF系列 // [极客大挑战 2019] Http
Ga1axy_z
CTF
前言本题知识点:常用HTTP请求头WP打开题目,在页面中没有发现明显的提示,查看网页源码,经搜索后发现一个似乎存在猫腻的网页‘Secret.php’访问该页面,得到第一个提示题目要求我们从‘https://www.Sycsecret.com’进入该页面,故使用burpsuite抓包,在请求头中增加Referer字段即可RefererHTTPReferer是header的一部分,当浏览器向Web服务
- buuctf [极客大挑战 2019]FinalSQL
cng_Capricornus
buuctfweb安全
进入题目,又是这个作者,试试万能密码经过实验,双写什么的都没用。作者说的神秘代码,点进去发现url变了发现并没有什么卵用……正当我没有头绪的时候,我突然看到一句话,审题真的很重要:盲注!这里附上大佬的脚本:importrequestsimporttimeurl="http://def9937b-1746-4f41-98c7-a2b55b95664a.node4.buuoj.cn:81/search
- 八月刷题总结
Uzero.
ctf
2021DASCTFJulyXCBCTF--catflag考察日志文件位置,escapeshellarg函数绕过DASCTFJulyXCBCTF4th--ezrceYAPIMock远程代码执行漏洞BUUCTF--[HarekazeCTF2019]EasyNotesSESSION反序列化BUUCTF--[SWPU2019]Web3伪造Session,生成linux中的软链接BUUCTF--[wate
- [BUUCTF][极客大挑战 2019]PHP
朋克归零膏
CTFphplinuxfirefox
备份根据提示应该就是网站备份文件能被爆破出来随手写了个爆破脚本,基于御剑字典,只供学习使用importrandomimportrequestsimporttimefrommultiprocessingimportPooldefmultiScan(target,file_name,pool_num,delay):local_pool=Pool(pool_num)dirs=get_path_dict(
- BUUCTF [极客大挑战 2019]Secret File 1
THEMIScale
还差一步这道题就出来了在想了在想了别骂了别骂了打开题目后一片黑这个时候根据经验有事没事先ctrl+a安排一下果然有问题在最下方有一个连接打开链接出现一个按钮按他就完事了并没有出来什么用burp拦截后发现提示:secr3t.php打开后提示flag在flag.php中并且给了一串php其中stristr函数不用绕过直接干就完了然后就是啊哈!你找到我了!可是你看不到我QAQ~~~我就在这里这边最后请教
- BUUCTF--[羊城杯 2020]Easyphp2
Uzero.
进入后的页面根据题目提示我们可以知道这是一道PHP代码审计的题所以使用伪协议查看源代码,这里使用的是两次url编码绕过/?file=php://filter/read=convert.quoted-printable-encode/resource=GWHT.php/?file=php://filter/read=convert.%2562%2561%2573%2565%2536%2534-enc
- BUUCTF:[ISITDTU 2019]EasyPHP --- rce 超级异或,,,吐了,,,字符之间异或, 成型的异或payload!!!
Zero_Adam
BUUCTF刷题记录RCEpython
目录:一、自己做:二、学的的三、学习WP1.这里先来个不限制字符个数的关于这个%ff以及异或的事情,咱们好好唠唠1.生成异或中间值的python脚本2.看有字符限制的时候,:参考:末初一、自己做:0xd)die('youaresoclose,omg');eval($_);?>过滤了,不少,我一般碰到rce的题,就看自己的笔记,然后把payload一股脑的网上怼,,,二、学的的正则看不明白的时候,可
- BUUCTF [b01lers2020]little_engine
皮皮蟹!
BUUCTF
1.拿到文件,进入主函数:这个是动调之前的主函数,开始动调:其中,已知字符串已经给出,为unk_5617CE521220,一共300位:进入加密函数sub_5608DAAB8510:通过多次动态调试,得到了加密算法的逻辑。看判断函数sub_5608DAAB85A0:综上,写出加密脚本:a=[0xE1,0xE
- Web安全漏洞——SSTI模版注入(初级)
@Camelus
渗透与攻防web安全网络安全安全安全架构
目录前言:(一)什么是SSTI举个栗子:前提:自动化工具:(二)Flask模块注入0x01常用的内建属性__class___base____bases____mro____subclasses__()__dict____init____global____getitem__过滤器0x01attr0x02format0x03firstlastrandom0x04join0x05lower0x06re
- BUUCTF--[羊城杯 2020]Blackcat
Uzero.
进入后查看源码发现提示都说听听歌了!下载Hei_Mao_Jing_Chang.mp3文件,使用命令stringsHei_Mao_Jing_Chang.mp3查看文件在文末看到一段PHP代码if(empty($_POST['Black-Cat-Sheriff'])||empty($_POST['One-ear'])){die('$clandestine=getenv("clandestine");i
- 84,【8】BUUCTF WEB [羊城杯 2020]Blackcat
rzydal
前端
进入靶场音乐硬控我3分钟回去看源码开始解题运行得到afd556602cf62addfe4132a81b2d62b9db1b6719f83e16cce13f51960f56791b最终组成payload:White-cat-monitor[]=1&Black-Cat-Sheriff=afd556602cf62addfe4132a81b2d62b9db1b6719f83e16cce13f51960f5
- BUUCTF--[HarekazeCTF2019]Avatar Uploader 1
Uzero.
name随便输一个,进入之后看到是让上传头像,这个应该是一个文件上传漏洞接下来分析所给的源码256000){error('Uploadedfileistoolarge.');}//checkfiletype$finfo=finfo_open(FILEINFO_MIME_TYPE);$type=finfo_file($finfo,$_FILES['file']['tmp_name']);finfo_
- ssti注入
m0_73818134
flaskpython
flask有个明显的特征就是服务器模板,把用户输入的回显到web页面,一般在用户交互的地方(输入/输出),这个要用python去构造链子去执行python命令,来getshell。一般的注入是get型的如{{7*7}},{%7*7%},{#7*7#},还有{%print(7*7)%}.一般的链子1().__class__.__base__.__subclasses__()[140].__init_
- Flask SSTI注入:探索模板注入漏洞
NfsVerilog
flaskpython后端
简介在Web应用程序开发中,安全性是至关重要的。然而,有时候由于不正确的输入验证或者配置设置,可能会导致安全漏洞的存在。在本文中,我们将探讨一种常见的Web应用程序漏洞——Flask中的SSTI(服务器端模板注入)注入。我们将介绍SSTI注入的原理,展示它的危害,并提供一些防御措施。什么是SSTI注入?SSTI(Server-SideTemplateInjection)注入是一种Web应用程序漏洞
- BUUCTF_Crypto_[WUSTCTF2020]B@se
qq_58370970
经验分享
给了一个txt文件:从题目可以看出是与base64相关,不难发现是base64的变种,将base64的顺序改变了,但还有4个字符不知道可以写python脚本得到缺失的4个字符代码如下:importstrings='JASGBWcQPRXEFLbCDIlmnHUVKTYZdMovwipatNOefghq56rs****kxyz012789+/'j='ABCDEFGHIJKLMNOPQRSTUVWXY
- BUUCTF--October 2019 Twice SQL Injection
Uzero.
根据题目可以知道这是一个二次注入题注册时把我们sql语句放到username处,登录后即可看到我们想要的信息payload为:username=1'unionselectdatabase()#username=1'unionselectgroup_concat(table_name)frominformation_schema.tableswheretable_schema='ctftrainin
- BUUCTF gyctf_2020_borrowstack
Bengd0u
第一个read的只能溢出0x10字节,也就是刚好覆盖返回地址,如果要ROP地方肯定不够所以栈迁移到bank,在那里ROP之前没遇到过这样的题,怎么迁过去我苦思冥想,最终还是看了wp,,用两个leave来控制rsp和rbp寄存器,太妙了leave是个伪代码,,分解开就是movrsp,rbppoprbp如果把栈构造成这样‘A’*0x60bank_addrleave_addr那么就有两次leavemov
- web前段跨域nginx代理配置
刘正强
nginxcmsWeb
nginx代理配置可参考server部分
server {
listen 80;
server_name localhost;
- spring学习笔记
caoyong
spring
一、概述
a>、核心技术 : IOC与AOP
b>、开发为什么需要面向接口而不是实现
接口降低一个组件与整个系统的藕合程度,当该组件不满足系统需求时,可以很容易的将该组件从系统中替换掉,而不会对整个系统产生大的影响
c>、面向接口编口编程的难点在于如何对接口进行初始化,(使用工厂设计模式)
- Eclipse打开workspace提示工作空间不可用
0624chenhong
eclipse
做项目的时候,难免会用到整个团队的代码,或者上一任同事创建的workspace,
1.电脑切换账号后,Eclipse打开时,会提示Eclipse对应的目录锁定,无法访问,根据提示,找到对应目录,G:\eclipse\configuration\org.eclipse.osgi\.manager,其中文件.fileTableLock提示被锁定。
解决办法,删掉.fileTableLock文件,重
- Javascript 面向对面写法的必要性?
一炮送你回车库
JavaScript
现在Javascript面向对象的方式来写页面很流行,什么纯javascript的mvc框架都出来了:ember
这是javascript层的mvc框架哦,不是j2ee的mvc框架
我想说的是,javascript本来就不是一门面向对象的语言,用它写出来的面向对象的程序,本身就有些别扭,很多人提到js的面向对象首先提的是:复用性。那么我请问你写的js里有多少是可以复用的,用fu
- js array对象的迭代方法
换个号韩国红果果
array
1.forEach 该方法接受一个函数作为参数, 对数组中的每个元素
使用该函数 return 语句失效
function square(num) {
print(num, num * num);
}
var nums = [1,2,3,4,5,6,7,8,9,10];
nums.forEach(square);
2.every 该方法接受一个返回值为布尔类型
- 对Hibernate缓存机制的理解
归来朝歌
session一级缓存对象持久化
在hibernate中session一级缓存机制中,有这么一种情况:
问题描述:我需要new一个对象,对它的几个字段赋值,但是有一些属性并没有进行赋值,然后调用
session.save()方法,在提交事务后,会出现这样的情况:
1:在数据库中有默认属性的字段的值为空
2:既然是持久化对象,为什么在最后对象拿不到默认属性的值?
通过调试后解决方案如下:
对于问题一,如你在数据库里设置了
- WebService调用错误合集
darkranger
webservice
Java.Lang.NoClassDefFoundError: Org/Apache/Commons/Discovery/Tools/DiscoverSingleton
调用接口出错,
一个简单的WebService
import org.apache.axis.client.Call;import org.apache.axis.client.Service;
首先必不可
- JSP和Servlet的中文乱码处理
aijuans
Java Web
JSP和Servlet的中文乱码处理
前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下。应该是可以解决日常的乱码问题了。现在作以下总结希望对需要的人有所帮助。我也是刚学,所以有不足之处希望谅解。
一、表单提交时出现乱码:
在进行表单提交的时候,经常提交一些中文,自然就避免不了出现中文乱码的情况,对于表单来说有两种提交方式:get和post提交方式。所以
- 面试经典六问
atongyeye
工作面试
题记:因为我不善沟通,所以在面试中经常碰壁,看了网上太多面试宝典,基本上不太靠谱。只好自己总结,并试着根据最近工作情况完成个人答案。以备不时之需。
以下是人事了解应聘者情况的最典型的六个问题:
1 简单自我介绍
关于这个问题,主要为了弄清两件事,一是了解应聘者的背景,二是应聘者将这些背景信息组织成合适语言的能力。
我的回答:(针对技术面试回答,如果是人事面试,可以就掌
- contentResolver.query()参数详解
百合不是茶
androidquery()详解
收藏csdn的博客,介绍的比较详细,新手值得一看 1.获取联系人姓名
一个简单的例子,这个函数获取设备上所有的联系人ID和联系人NAME。
[java]
view plain
copy
public void fetchAllContacts() {
 
- ora-00054:resource busy and acquire with nowait specified解决方法
bijian1013
oracle数据库killnowait
当某个数据库用户在数据库中插入、更新、删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误。主要是因为有事务正在执行(或者事务已经被锁),所有导致执行不成功。
1.下面的语句
- web 开发乱码
征客丶
springWeb
以下前端都是 utf-8 字符集编码
一、后台接收
1.1、 get 请求乱码
get 请求中,请求参数在请求头中;
乱码解决方法:
a、通过在web 服务器中配置编码格式:tomcat 中,在 Connector 中添加URIEncoding="UTF-8";
1.2、post 请求乱码
post 请求中,请求参数分两部份,
1.2.1、url?参数,
- 【Spark十六】: Spark SQL第二部分数据源和注册表的几种方式
bit1129
spark
Spark SQL数据源和表的Schema
case class
apply schema
parquet
json
JSON数据源 准备源数据
{"name":"Jack", "age": 12, "addr":{"city":"beijing&
- JVM学习之:调优总结 -Xms -Xmx -Xmn -Xss
BlueSkator
-Xss-Xmn-Xms-Xmx
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:
java -Xmx355
- jqGrid 各种参数 详解(转帖)
BreakingBad
jqGrid
jqGrid 各种参数 详解 分类:
源代码分享
个人随笔请勿参考
解决开发问题 2012-05-09 20:29 84282人阅读
评论(22)
收藏
举报
jquery
服务器
parameters
function
ajax
string
- 读《研磨设计模式》-代码笔记-代理模式-Proxy
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
/*
* 下面
- 应用升级iOS8中遇到的一些问题
chenhbc
ios8升级iOS8
1、很奇怪的问题,登录界面,有一个判断,如果不存在某个值,则跳转到设置界面,ios8之前的系统都可以正常跳转,iOS8中代码已经执行到下一个界面了,但界面并没有跳转过去,而且这个值如果设置过的话,也是可以正常跳转过去的,这个问题纠结了两天多,之前的判断我是在
-(void)viewWillAppear:(BOOL)animated
中写的,最终的解决办法是把判断写在
-(void
- 工作流与自组织的关系?
comsci
设计模式工作
目前的工作流系统中的节点及其相互之间的连接是事先根据管理的实际需要而绘制好的,这种固定的模式在实际的运用中会受到很多限制,特别是节点之间的依存关系是固定的,节点的处理不考虑到流程整体的运行情况,细节和整体间的关系是脱节的,那么我们提出一个新的观点,一个流程是否可以通过节点的自组织运动来自动生成呢?这种流程有什么实际意义呢?
这里有篇论文,摘要是:“针对网格中的服务
- Oracle11.2新特性之INSERT提示IGNORE_ROW_ON_DUPKEY_INDEX
daizj
oracle
insert提示IGNORE_ROW_ON_DUPKEY_INDEX
转自:http://space.itpub.net/18922393/viewspace-752123
在 insert into tablea ...select * from tableb中,如果存在唯一约束,会导致整个insert操作失败。使用IGNORE_ROW_ON_DUPKEY_INDEX提示,会忽略唯一
- 二叉树:堆
dieslrae
二叉树
这里说的堆其实是一个完全二叉树,每个节点都不小于自己的子节点,不要跟jvm的堆搞混了.由于是完全二叉树,可以用数组来构建.用数组构建树的规则很简单:
一个节点的父节点下标为: (当前下标 - 1)/2
一个节点的左节点下标为: 当前下标 * 2 + 1
&
- C语言学习八结构体
dcj3sjt126com
c
为什么需要结构体,看代码
# include <stdio.h>
struct Student //定义一个学生类型,里面有age, score, sex, 然后可以定义这个类型的变量
{
int age;
float score;
char sex;
}
int main(void)
{
struct Student st = {80, 66.6,
- centos安装golang
dcj3sjt126com
centos
#在国内镜像下载二进制包
wget -c http://www.golangtc.com/static/go/go1.4.1.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.4.1.linux-amd64.tar.gz
#把golang的bin目录加入全局环境变量
cat >>/etc/profile<
- 10.性能优化-监控-MySQL慢查询
frank1234
性能优化MySQL慢查询
1.记录慢查询配置
show variables where variable_name like 'slow%' ; --查看默认日志路径
查询结果:--不用的机器可能不同
slow_query_log_file=/var/lib/mysql/centos-slow.log
修改mysqld配置文件:/usr /my.cnf[一般在/etc/my.cnf,本机在/user/my.cn
- Java父类取得子类类名
happyqing
javathis父类子类类名
在继承关系中,不管父类还是子类,这些类里面的this都代表了最终new出来的那个类的实例对象,所以在父类中你可以用this获取到子类的信息!
package com.urthinker.module.test;
import org.junit.Test;
abstract class BaseDao<T> {
public void
- Spring3.2新注解@ControllerAdvice
jinnianshilongnian
@Controller
@ControllerAdvice,是spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强。让我们先看看@ControllerAdvice的实现:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Co
- Java spring mvc多数据源配置
liuxihope
spring
转自:http://www.itpub.net/thread-1906608-1-1.html
1、首先配置两个数据库
<bean id="dataSourceA" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close&quo
- 第12章 Ajax(下)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- BW / Universe Mappings
blueoxygen
BO
BW Element
OLAP Universe Element
Cube Dimension
Class
Charateristic
A class with dimension and detail objects (Detail objects for key and desription)
Hi
- Java开发熟手该当心的11个错误
tomcat_oracle
java多线程工作单元测试
#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收
测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为
- 推行国产操作系统的优劣
yananay
windowslinux国产操作系统
最近刮起了一股风,就是去“国外货”。从应用程序开始,到基础的系统,数据库,现在已经刮到操作系统了。原因就是“棱镜计划”,使我们终于认识到了国外货的危害,开始重视起了信息安全。操作系统是计算机的灵魂。既然是灵魂,为了信息安全,那我们就自然要使用和推行国货。可是,一味地推行,是否就一定正确呢?
先说说信息安全。其实从很早以来大家就在讨论信息安全。很多年以前,就据传某世界级的网络设备制造商生产的交