办不到。协议层不一样,iptables 能设置的是第 3 层的网络层。
HTTP(S)协议层是应用层(在第 4 层以上),你应该在自己的程序中,或者是 Web 服务器上设置。
我的感觉是事情没那么简单。在事件没有调查出结果前,过分猜测是不好的。
不是很明白 LZ 说的意思。
DNS 不可能由两个不同的服务商提供的服务来决定的。
首先要搞清楚, RSA 是公开键加密方式 。
你用自己的私钥加密,服务器用你的公钥解密。
不管是.key 还是.pem, 你看一下,对方给你的私是不是这样的格式。
-----BEGIN RSA PRIVATE KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
yrVybznT4e+i2bxPP1uOu3Dc48xkzu3yjX+EJ7BYVa7u6lCkMjCPACA6TALuWHBk
c50IXXbJa4VMNe/WPB26oX0QsXnXTqZ9fht2JYdOxdlw4j8eWds2nGfXyyp9bFxg
8Ey9AIMWsnIOrBsdcubrgmcoM/QRonT4RMoj++zuuAa56t/+B4VArCIea5LBUGcB
OK0ClbABTGTtcTc8ZTj0oiwcoYCLf70D4Ytb93oMuYwoX5bepCLxxNrjdgDENrVl
wGqQnMSAO6TEySuIPghYgbfpyZPPQq1Sg1PcewIDAQABAoIBAFSlOTXHJT+xu1hu
KZMjJ4amu4hf4T+SZdEnK0zfRsoREOYe328T5cPaDY/zFzHDV3bxF11O03KypfFV
aCsZ8uIYLozlS0xDtNeRooEs8wsoz4TnDQx59wsguJ1aFqfkwYNEHZxfUpuA7iCp
01gKcocL+9cdXJ1MSYEuA866qVsu4zILhpOcSzPaT5Ndi6CoUhZQ2/1Ru1BfuKIv
hWa4WlQr+1PhzzI2wzWPOiWaEsew/WGkRqPsL45C7CWelfa/suJ89TxaECZu1fOZ
WRwGgXLWlNr13dCtguAanvl4ricM8dXtNXA+9jrhl7OMaDW0YlX2+iDCSviRu6Ik
jx1QHIECgYEA+xxvvdhhNbYVO9jJSg/nqMaRi0UMn/aDMiw1QXY1XNpZIjQxxYbj
O/au+jMqwllqKCO/zVmZlLeJ9kttbQgtW+afKool+vChEdZDmBa/4pBcTibsdIq2
xwUoZFf9wr8Kpk2JVfFjjUfnFBFmDya3EtNBIDNhF8KzfRmgJ4Vw0LECgYEA8s4G
qB1iSYUxGn24FBJ2sJxMYcxkasLhil8UEBKHk8ainsAX69yDlCoLmzmoAEytOYZS
FgSW+VZcnoolqv8Ra7QEqv9HuELBWx/gPn6cMnmJXuQaOHEV3Vn7v+T54lVUA2nG
sE3FINrS7kji6oslzq5semLdkmFNN26ORnLLausCgYEAzEkCDuwtiUisVZezifEO
gZupZCe0cZ5WdUbJvIuyNevcf5r+srddvbad+yYNLzcWybjrnN+7teTq89fBGeaB
IDaqXi0tYMzJ/HzXWK+JQ4Q1086OpvECaT6k8Z0z8G8C9vA1Phm254ULVKQi50iT
v1jlrpCd+HqJEsj6JazFbsECgYEA7TqfBmKvRWX9NAThdbsUfDo55tPsyOLfunJr
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
KEZMFoTo0u3LMJpM4piogDUYcSstiqgumNNjZ1ZmAKr2CnMp3WZOVsWB9yNabm52
VB6U4UECgYEAg8N4W/YaohOVbe1khTLkDeTQjh5SGcigRNyvjPic0Z+9s+mwMnXV
f0095q9mmJcSpc3FpqQ7nk+MCQwbYbPcNsN2lYoqMfst800NafRXMXeeHImxr+WF
h8dycnofLi+5tg/PT/9NjBoePf8rvbmSnmQYnsOqo4WIPZAeF1sve6I=
-----END RSA PRIVATE KEY-----
多数公司开源只有 2 个原因。
1.自身公司的工程师很难快速地维护和开发,希望借助外面的力量
2.自身公司的产品想扩大市场占有率做的战略上转变
非常有必要。
首先安全性,就不用说了。 2048 位以上没有国家级的攻击几乎不可能能成功了。
再说 SEO , SEM, google 已经将网站的排名算法改了,启用了 SSL 证书的网站的排名将靠前。
而且各大浏览器,都准备将非 https 的网站标注为不安全。
RESTful 的接口,不想被外面调用的话,限制 IP 就是必要的了。
如果想被外面有限的用户调用,那要增加对每个用户验证的机制。
方法有很多,最简单的方法是双方约定一个密码,交互的数据进行加密,
request 和 response 都只有双方能够解密对方的东西,
传输时也加密( HTTPS ),还有一个是要防止有效的用户“作恶”,你必须
对限制用户的可操作的数据的范围,不能 A 用户能操作 B 用户的数据。
感觉操作流程没有问题。
查一查是不是会是驱动的问题吧。
科班出身的人不一定比半路出家的强,还是看个人合不合适 IT 的职业。
但是招聘的时候,如果有科班和半路出家的人,一般倾向于科班出身的人,因为科班出身的人,不靠谱的比半路出家的少。
安全性无法保证。
很多的产品用的是WAF,并不是直接去改 iptables.
可以做一个 procedure 来做这个事情。
====================================================================
DELIMITER;;
DROP PROCEDURE IF EXISTS `update_a_orderid`;
CREATE PROCEDURE update_a_orderid ()
BEGIN
DECLARE a_id, a_bookid, a_orderid, prev_bookid INT UNSIGNED;
DECLARE done INT DEFAULT FALSE;
DECLARE cur1 CURSOR FOR (SELECT ID, BOOKID from A ORDER BY BOOKID);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
SET a_orderid=1;
SET prev_bookid=0;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO a_id, a_bookid;
IF done THEN
LEAVE read_loop;
END IF;
IF prev_bookid = 0 OR a_bookid > prev_bookid THEN
SET a_orderid = 1;
ELSE
SET a_orderid = a_orderid + 1;
END IF;
UPDATE A set orderid=a_orderid where id=a_id;
END LOOP;
CLOSE cur1;
END
;;
DELIMITER ;
====================================================================
最后调用 call update_a_orderid();就可以了。
我感觉是不是应该把在香港主机上内网网卡转发改一下?你原来的设置的意思是到 192.168.1.10 的包的 IP 地址改成 192.168.1.20.
iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 4003 -j SNAT --to 192.168.1.20
改成
iptables -t nat -A POSTROUTING -s 192.168.1.10 -p tcp --dport 4003 -j DNAT --to 192.168.1.20
就是说从 192.168.1.10 过来的包都转发到 192.168.1.20 去。
执行 sysctl net.ipv4.ip_forward 看看是不是设置成 1 了?
netstat -ntpl看看现在监听的TCP端口和进程有什么 。
ps aux | grep mysql查看mysql进程在启动。
如果这两个都没有mysql,说明你找错服务器了。
@
iyangyuan 只在函数中用到的变量,都是在stack中,或者是从外面传入参数的拷贝也都是在stack里面分配内存。
这个问题还真不好回答。
得看该变量是什么类型才行,如果是全局变量,或者是静态变量,应该是看堆的内堆大小。
如果是临时变量,应该看stack的大小。
用arp和rarp命令可以从ip得到MAC地址, MAC地址得到IP。