https://www.itdaan.com/tw/e7d5e5f305ed
https://www.codeproject.com/Articles/31356/C-MP3-Sound-Capturing-Recording-Component
https://www.itdaan.com/tw/e7d5e5f305ed
https://www.codeproject.com/Articles/31356/C-MP3-Sound-Capturing-Recording-Component
禁用格式化磁碟操作 保護電腦文件安全防止刪除
https://kknews.cc/zh-tw/news/y5958ek.html
對於磁碟格式化的操作,是通過Format.exe程序來實現,因此我們也有必要對可以實現磁碟格式化的軟體進行限制運行操作,從而 實現更徹底的防止格式化磁碟操作
https://www.youtube.com/watch?v=I6cevbG6aSs
https://www.youtube.com/watch?v=ToUut_LBZbs&list=PL_ejO7vn7l2358FsVgNZI944kEIn4NNJ8
=====================================================================
瀏覽器會有WEB API 跨域請求
傳統作法
1.btn_1登入後,取得帳號
2.btn_2 在前端驗證帳號
3.如果有帳號,將帳號傳送出去
4.取得該帳號個資
有風險
1.直接在前端避掉驗證帳號
2.可以在前端將帳號變更(明碼)
3.可以直接取得帳號個資
jwt
1.在後端做驗證帳號
2.btn_1登入後,將帳號比對後,做jwt加密,回傳token
3.btn_2 將token加入headers回傳,申請取得資料
4.在後端將token解密比對帳號,如果帳號ok
5.將帳號個資回傳
如果將token用工具解密,在Payload內容變更帳號,然後直接線上產生一組新的token。
將token回傳,申請取得資料,會無法解密。
(因為必須透過jwt開始時透過key加密方法產生的token才有辦法解密時,透過key來解密)。
https://www.itread01.com/content/1548408965.html
https://dotblogs.com.tw/grayyin/2016/04/19/144437
https://www.bilibili.com/video/BV1QZ4y1u72y/?spm_id_from=333.788.videocard.4
https://www.youtube.com/watch?v=B76TOeGad6M
https://www.bilibili.com/video/BV1ck4y1r79C/?spm_id_from=333.788.videocard.7
https://www.bilibili.com/video/BV1Bf4y1278A/?spm_id_from=333.788.videocard.1
==========================================================
https://haokan.baidu.com/v?vid=9126350290334122060&pd=bjh&fr=bjhauthor&type=video
https://www.facebook.com/will.fans/videos/711522182929613/
https://www.facebook.com/watch/?v=271242413931518
https://www.twblogs.net/a/5c764593bd9eee339917ebe6
https://blog.yowko.com/httpclient/
https://www.youtube.com/watch?v=g1EU9gnZKOg&list=PLZX6sKChTg8GQxnABqxYGX2zLs4Hfa4Ca&index=33
===============================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace pt
{
public partial class Form1 : Form
{
weberpEntities db = new weberpEntities();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "";
var allitem = db.bas_item.ToList();
foreach (var item in allitem)
{
label1.Text += item.mname + "\r\n";
}
}
private void button2_Click(object sender, EventArgs e)
{
label1.Text = "";
var item = db.bas_item.Select(p => p.mname).ToList();
foreach (var fn in item)
{
label1.Text += fn + "\r\n";
}
}
private void button3_Click(object sender, EventArgs e)
{
label1.Text = "";
var item = db.bas_item.Where(p=>p.price_sale==500).Select(p => p.mname+":費用"+p.price_sale).ToList();
foreach (var fn in item)
{
label1.Text += fn + "\r\n";
}
}
private void button4_Click(object sender, EventArgs e)
{
label1.Text = "";
var YesOrNo= db.bas_item.All(p => p.price_sale == 500);
label1.Text = YesOrNo.ToString();
}
private void button5_Click(object sender, EventArgs e)
{
label1.Text = "";
var YesOrNo = db.bas_item.Any(p => p.price_sale == 500);
label1.Text = YesOrNo.ToString();
}
private void button6_Click(object sender, EventArgs e)
{
label1.Text = "";
var groups = db.bas_item.GroupBy(p => p.mname).ToList();
foreach (var g in groups)
{
label1.Text += g.Key + ":" + g.Count() + "\r\n";
}
}
private void button7_Click(object sender, EventArgs e)
{
label1.Text = "";
var count = db.bas_item.Count(p => p.placeid == 1);
label1.Text = count.ToString();
}
}
}