當(dāng)前位置:首頁 > IT技術(shù) > 其他 > 正文

填空題 && 選擇題 && 討論 - 軟件安全
2022-05-11 11:05:06

一、填空題

1.?軟件安全中,軟件安全測(cè)試和開發(fā)過程包括:軟件安全(??)、軟件安全(??)、軟件安全(??)、軟件安全(??)、軟件安全(??)。

我的答案:
(1) 需求分析
(2) 設(shè)計(jì)
(3) 編碼
(4) 測(cè)試
(5) 部署

2.?網(wǎng)絡(luò)空間包含電子設(shè)備、基礎(chǔ)設(shè)施、應(yīng)用、數(shù)據(jù),還有(??)。

我的答案:
(1) 人

3.?網(wǎng)絡(luò)安全框架的核心PDRR模型中,P指(? ? )、D指(? ?)。

我的答案:
(1) Protection
(2) Detection

4.?Win32系統(tǒng)中,進(jìn)程空間按功能分為4個(gè)區(qū)域,從低地址到高地址依次為()、()、()、()。

我的答案:
(1) 棧區(qū)
(2) 堆區(qū)
(3) 代碼區(qū)
(4) 數(shù)據(jù)區(qū)

5.?棧增長(zhǎng)方向是從()地址到()地址;堆增長(zhǎng)方向是從()地址到()地址。

我的答案:
(1) 高
(2) 低
(3) 低
(4) 高

6.?數(shù)據(jù)區(qū)存儲(chǔ)()變量和()變量。

我的答案:
(1) 全局
(2) 靜態(tài)

7.?緩沖區(qū)溢出指向緩沖區(qū)寫數(shù)據(jù)時(shí),沒有做()檢查,緩沖區(qū)的數(shù)據(jù)超過預(yù)先分配的(),使得一簇?cái)?shù)據(jù)覆蓋在合法數(shù)據(jù)上引起的系統(tǒng)異常。

我的答案:
(1) 邊界
(2) 邊界

8.?下列程序的的運(yùn)行結(jié)果是(),如果不相等,第二空填寫修改后的判斷語句(不敲空格,不敲結(jié)束的分號(hào)),如果相等,第二空填無。

  char *s1="abcd";

  char s2[5];

  strcpy(s2,s1);

  if(s1==s2){

     printf("equal!");

  }

  else{

    printf("not equal!");

  }
我的答案:
(1) not equal!
(2) if(strcmp(s1,s2)==0)

9.?補(bǔ)充for循環(huán),實(shí)現(xiàn)任意元素?cái)?shù)組的遍歷打印,填寫完整的for()語句,不加任何空格。

int a[]={..............};

for(int i=0;                   )

{

   System.out.println(a[i]);

}
我的答案:
(1) for(int i = 0; i < a.length; i++)

10.?定義數(shù)組,使用下列語句對(duì)嗎?對(duì)則回答對(duì),不對(duì)則修改該語句,語句中不加空格。

int *a=new int(10);
我的答案:
(1) int*a=newint[10]

11.?下列語句,根據(jù)注釋填空,不敲空格。

Obj * obj=new Obj[10];

delete         //釋放

 

OObj * obj=new Obj(10);

delete       //釋放
我的答案:
(1) []obj
(2) obj

12.?下列程序有無漏洞,無則填無,有則把該代碼行拷貝到答案中。

  void foo(const char *s){

}

 

void main(int a, char *v[]){

  static char buf[10];

  static void(*p)(const char * s);

p=&foo;

strncpy(buf,v[1],strlen(v[1]));

(void )(*p)(v[2]);

}?
我的答案:
(1)?strncpy(buf,v[1],strlen(v[1]));

13.?下列代碼有錯(cuò)嗎,無則填無,有則把錯(cuò)誤行修改填入空中。

class Foo{

  private:

  int id;

  char * name;

  public:

  Foo(int i){

id=i;

name=new char [20];

}

 ~Foo()(

  delete []name;

}

};

void delete_object(void * p){

   delete p;

}

int main(){

Foo * f=new Foo(100);

delete_object(f);

}
我的答案:
(1) delete f;

14.?下列程序打印出的結(jié)果分別是什么?

unsigned short int a =32768;

short int i=a;

printf("%d",i);

a=65535;

i= a;

printf("%d",i);?
我的答案:
(1) -32768
(2) -1

15.?下列程序打印的結(jié)果是什么?

int bigint=2147483647;

printf("%d",bigint++);

unsigned int z=0;

printf("%d",--z);
我的答案:
(1) 2147483647
(2) -1

16.?程序的打印結(jié)果是什么?

unsigned int i=ULONG_MAX;

int c= -1;

printf("%d", c==i);?
我的答案:
(1) 1

17.?下列程序的打印結(jié)果是什么?如何修改(只改一句)?

unsigned short s=4;

 while (--s >=0)

{

 printf("%d",s);

}
我的答案:
(1) 無限循環(huán)
(2) while(--s>0)

18.?在32位系統(tǒng)中,size_t相當(dāng)于類型???????最大值是???????

我的答案:
(1) unsigned int
(2) 4294967295

19.?下列代碼有漏洞嗎?把有漏洞的行進(jìn)行改正,每一句改正的代碼填一個(gè)空。

  char s1[5];

  char s2[5];

  char s3[10];

 

  strcpy(s1,"12345");

  strcpy(s2,"abcde");

  strcpy(s3,s1);

  strcat(s3,s2);

  cout<<s1<<endl;

  cout<<s2<<endl;

  cout<<s3<<endl;
我的答案:
(1) char s1[6]
(2) char s2[6]
(3) char s3[11]

20.?下列代碼段有漏洞,把有漏洞的行進(jìn)行改正,每一句改正的代碼填一個(gè)空。

  char s[10];

  puts("input a string:") ;

  gets(s); 

  cout<<s<<endl;?
我的答案:
(1) fgets(s,sizeof(s),stdin);

21.?下列程序有漏洞嗎?第幾行的程序有漏洞,問題在哪里?(把有漏洞的語句粘貼在答案里)

void test(char *c)

{

    short s=strlen(c);

    char buf[100];

    cout << "strlen(c)=" << strlen(c)<<endl;

     if(s<100){

         strcpy(buf,c);

    }

    else{

         cout<<"overflow!" <<endl;

    }

}?
我的答案:
(1) short s=strlen(c)

22.?整數(shù)n的初值為10,寫出下列語句n的值是多少?

n=(2* ++n)*(n = 'a')+ (n>0?1:-1);?
我的答案:
(1) 2135

?

二、單選題

1.?下列程序是否存在內(nèi)存泄露?

int  **a =new int *[3];

for (int i=0;i<3;i++){

     a[i]=new int[2];

 }

 delete []a;
  • A. 不存在
  • B. 存在
我的答案:?B
?

三、討論

1.C語言為什么容易產(chǎn)生棧溢出漏洞?我們?cè)诰幊讨性趺捶乐箺R绯雎┒矗?/span>

1.棧溢出是由于C語言系列沒有內(nèi)置檢查機(jī)制來確保復(fù)制到緩沖區(qū)的數(shù)據(jù)不得大于緩沖區(qū)的大小,因此當(dāng)這個(gè)數(shù)據(jù)足夠大的時(shí)候,將會(huì)溢出緩沖區(qū)的范圍。
2.為了防止棧溢出攻擊,最直接和最根本的辦法當(dāng)然是寫出嚴(yán)謹(jǐn)?shù)拇a,剔除任何可能發(fā)生棧溢出的代碼。但是當(dāng)程序的規(guī)模大到一定的程序時(shí),代碼錯(cuò)誤很難被發(fā)現(xiàn),因此操作系統(tǒng)和編譯器采取了一些措施來防護(hù)棧溢出攻擊,主要有以下措施。
①棧不可執(zhí)行機(jī)制:操作系統(tǒng)可以利用cpu硬件的特性,將棧設(shè)置為不可執(zhí)行的
②棧保護(hù)機(jī)制:檢查查棧上的數(shù)值有沒有被改寫,若被改寫了,則中止程序運(yùn)行。
③內(nèi)存布局隨機(jī)化機(jī)制:用戶程序都是加載到固定位置運(yùn)行。

?

2.人臉識(shí)別有哪些安全性問題?

?

1.人臉識(shí)別技術(shù)濫用無度,人臉特征隨意采集。公民的隱私受到極
大威脅,在使用人臉識(shí)別技術(shù)之前,信息采集者和持有者并未有效評(píng)
估了人臉識(shí)別應(yīng)用的必要性。
2.人臉識(shí)別技術(shù)中對(duì)用人臉特征數(shù)據(jù)的保密性、完整性和可用
性維護(hù)值得懷疑
保密性、完整性和可用性被稱為信息安全的 CIA 三要素。App 違
法違規(guī)收集使用個(gè)人信息專項(xiàng)治理工作組在 2020 年 9 月曾曝光某些
APP 使用明文傳輸人臉圖片數(shù)據(jù);“深網(wǎng)視界”被曝出人臉識(shí)別數(shù)據(jù)
庫,可供任何人查找,并允許完全訪問,上述兩個(gè)案例嚴(yán)重違背了保
密性原則;目前幾乎所有的 APP 在用戶注銷 APP 賬號(hào)之后,APP 未
提供用戶刪除人臉信息的渠道,此項(xiàng)違背了數(shù)據(jù)可用性原則。
3.人臉識(shí)別技術(shù)的安全技術(shù)標(biāo)準(zhǔn)和使用規(guī)范滯后于技術(shù)的發(fā)展
規(guī)制在人臉數(shù)據(jù)采集、使用與銷毀等方面的缺位,讓人臉識(shí)別技
術(shù)看起來很高大上,但實(shí)際上危險(xiǎn)性極大。雖然《中華人民共和國(guó)網(wǎng)
絡(luò)安全法》明確將個(gè)人生物特征納入個(gè)人信息保護(hù)范圍,但個(gè)人信息
的使用、存儲(chǔ)、運(yùn)輸、管理相關(guān)的法律條例仍需進(jìn)一步細(xì)化,目前手
機(jī) APP 未在明確告知用戶的情況下就對(duì)用戶的人臉數(shù)據(jù)進(jìn)行收集的
現(xiàn)象比比皆是,甚至還出現(xiàn)移動(dòng) APP 存在強(qiáng)制收集用戶的人臉信息,
否則 APP 無法正常使用的情況;
4.地下黑色產(chǎn)業(yè)鏈導(dǎo)致用戶數(shù)據(jù)被非法販賣
黑客或者內(nèi)部員工將非法獲得的人臉身份數(shù)據(jù)販賣給人臉識(shí)別
資源商,資源商將身份信息販賣給無法或不想用自己信息完成人臉識(shí)
別認(rèn)證的客戶,以幫助其通過人臉識(shí)別實(shí)名認(rèn)證,進(jìn)而牟取巨額暴利。

3.Web系統(tǒng)對(duì)安全有很高的要求,例如登錄口令應(yīng)該具有強(qiáng)口令的設(shè)計(jì),你認(rèn)為應(yīng)該從哪些方面設(shè)計(jì)強(qiáng)口令?請(qǐng)列舉出你能想到的所有設(shè)計(jì)點(diǎn)。

1.口令長(zhǎng)度大于等于14位且包含數(shù)字、大小寫字母及特殊字符;
2.不使用個(gè)人信息;
3.不對(duì)每個(gè)帳戶使用相同的密碼;
4.避免使用字典中可以找到的單詞;
5.使用密碼生成器生成隨機(jī)密碼。

?

?

?

?

?

?

?

本文摘自 :https://www.cnblogs.com/

開通會(huì)員,享受整站包年服務(wù)立即開通 >