後編の選択問題です。2,4,7,9を選択しました。
選択問題2:
1.SSL/TLS接続を確立している。このことから、
2.あまりにも長い文字列を検索するとerror 400を出す。このことで、
3.ハッキングされた可能性があるサイトを表示している。
4.検索ランキング決定のアルゴリズムを定期的に変更している。
5.
6.大量に検索リクエストを送信するなど、
7.googleの検索に表示される広告は審査されている。
8.特殊文字(=とか'とか)が入力されると、
9.(セキュリティ対策といえるのかはわからないけれど)
このことで、サポートされていない機能を使ってしまい、
選択問題4:
#define _USE_MATH_DEFINES
#define _SCL_SECURE_NO_WARNINGS
#include <stdio.h>
#include <algorithm>
#include <utility>
#include <functional>
#include <cstring>
#include <queue>
#include <stack>
#include <math.h>
#include <iterator>
#include <vector>
#include <string>
#include <set>
#include <math.h>
#include <iostream>
#include<map>
#include <stdlib.h>
#include <list>
#include <typeinfo>
#include <list>
#include <set>
#include <cstdint>
#include <stdint.h>
#include <intrin.h>
/*
#include <Windows.h>
uint64_t rdtsc() {
return __rdtsc();
}
unsigned MemoryUsageMegaBytes(void)
{
MEMORYSTATUSEX m = { sizeof m };
GlobalMemoryStatusEx(&m);
return (unsigned)(((512 * 1024) + (m.ullTotalVirtual - m.ullAvailVirtual)) / (1024 * 1024));
}
*/
using namespace std;
string valid_order_brand[3] = { "BlueMountain","Columbia","
string invalid_order_brand[2] = { "DandySoda","FrozenEvergreen" };
int main() {
FILE* fp;
fp = fopen("pyonpyon.rh", "rb");
if (fp == NULL) {
cout << "FAILED READING";//読めなかった場合
return 0;
}
/*
long long hoge_hoge = rdtsc();//最初のCPUクロックカウンタの値
*/
while (feof(fp) == 0) {
char Magic[2];
char Source[20], Destination[20];
char DataLength_base[4];
fread(Magic, sizeof(char), sizeof(char) * 2, fp);//Magic部の読み込み
fread(Source, sizeof(char), sizeof(char) * 20, fp);//Source部読み込み
fread(Destination, sizeof(char), sizeof(char) * 20, fp);//Destination部読み込み
fread(DataLength_base, sizeof(char), 4, fp);//とりあえずcharで読み込む
//c++なら
string st_Data;
string st_Source;
string st_Destination;
uint16_t DataLength = 0;
for (int i = 0;i < 4;++i) {
DataLength += (int)DataLength_base[3 - i] * pow(256, i);//変換
}
for (long long i = 0;i < DataLength;i++) {
//一文字ずつ読み込み -> Dataに収納
char hoge_hoge;
fread(&hoge_hoge, sizeof(char), sizeof(char), fp);
st_Data.push_back(hoge_hoge);
}
for (int i = 0;i < 20;++i) {
if (Source[i] != 0) {
st_Source.push_back(Source[i])
}
if (Destination[i] != 0) {
st_Destination.push_back(
}
}
bool failed = false;
if (Magic[0] != 'R' || Magic[1] != 'H') {
failed = true;
}//Condition 1
string small_Source = st_Source, small_Destination = st_Destination;//下ごしらえ
transform(small_Source.begin()
transform(small_Destination.
//小文字に変換完了
string valid_Source[2] = { "rise-san","cocoa-san" };
string valid_Destination[2] = { "chino-chan","chino" };
if (small_Source != valid_Source[0] && small_Source != valid_Source[1]) {
failed = true;//Condition 2
}
if (small_Destination != valid_Destination[0] && small_Destination != valid_Destination[1]) {
failed = true;//Condition 3
}
if (st_Source == "cocoa-san"&&st_Destination == "Chino") failed = true;//Condition 4
for (int i = 0;i < 3;++i) {
//Condition5を満たすか
if (st_Data.find(valid_order_
goto ok;
}
}
failed = true;
ok:;
for (int i = 0;i < 2;++i) {
//Condition6を満たさないか
if (st_Data.find(invalid_order_
failed = true;
}
}
if (failed == true) {
cout << "REJECTED" << endl;
}
else {
cout << "PASS" << endl;
}
/*
cout << rdtsc()-hoge_hoge << endl;//1回あたりのCPUサイクル出力
cout << MemoryUsageMegaBytes() << endl;//1回あたりのメモリ使用量出力
*/
}
/*
cout << rdtsc()-hoge_hoge << endl;//全体のCPUサイクル出力
cout << MemoryUsageMegaBytes() << endl;//全体のメモリ使用量出力
*/
return 0;
}
/*
メモリ使用量は19MegaByteで、
が同じだった。だから、
もしかしたら最初に入力データをすべて読み込んでるのかもしれな
CPUクロック数は最終的に 8877096 になった。しかし、何回も実行していると 値が変わっていたので、実行時の状況に依存していると思う。こちらは、
*/
/*
実行結果:
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
PASS
REJECTED
PASS
PASS
PASS
REJECTED
REJECTED
PASS
PASS
PASS
REJECTED
REJECTED
REJECTED
PASS
PASS
PASS
REJECTED
REJECTED
REJECTED
REJECTED
PASS
PASS
PASS
REJECTED
REJECTED
REJECTED
REJECTED
REJECTED
PASS
PASS
PASS
REJECTED
REJECTED
REJECTED
REJECTED
REJECTED
REJECTED
REJECTED
*/
選択問題7:
1.有線LANなら実際にケーブルをたどっていって、
2.ルータのアクセスログの中から、
3.
4.
5.Netenumなどのツールを使って、
選択問題9:
サービス:インターネットと役所の窓口の両方から交付申請ができるようなサ
インターネットでの申込にはWEBサイトを使い、TLS/
ただし、
最終的には、
注意点:
1.WEBサイトには脆弱性を残さないようにする。
デバッグ用のデータをできるだけ残さないように注意し、
予算があるならばCloudFlareなどの外部のセキュリティ
2.
カードの作成時にもうすでにマイナンバーカードが発行されている
当然ながら、人間の目でも定期的にチェックする。
3.
その場で発行すると、紛失したり、
さらに、二重申込なども未然に防げる。
4.
紛失した時にどこに申請するか、
特に、パソコンを利用する人に対しては、
できればパンフレットを配布しておくのが理想。
5.マイナンバー情報はできるだけ暗号化した状態で使用する。
どうしてもハッキングというのは起こりうるので、
人間はデータを暗号化し忘れることがあるから、
6.データベースにはアクセス制限をかけておく。
当たり前だけれども、パスワードには大文字や小文字、
データベース側ではログを取得しておき、
7.データの入れ間違えが起こりにくいようにする。
マイナンバーを2桁入れ間違えたとか、
応募内容は以上です。
来年以降は大学受験に向けてもきっと動き出すので、できれば今年参加したいところ。22歳まで参加の権利はあっても、チューターでの応募や参加はどんどん難しくなっていきそうな気がするから、できればまだ時間のある今のうちに参加が決まるといいんだけど、こればかりは運に任せるしかないっていう。
というか、そもそも全国大会に行ける日が来るんだろうかっていうね。
結果が出るまでもやもやするよーー!