I would always go with web.config on the grounds that that is where everyone would expect it to be. There is no point in giving the person that has to maintain the web site any more difficulty by storing connection strings in an unusual place.
ADDITIONAL
Based on the additional information that the OP is interested in the security aspect, rather than and general reason I've added the following.
I still wouldn't store connection strings in the machine.config. If you do that any .NET application running on the machine has access to your connection strings.
web.config is a protected file. IIS won't serve it up by default unless you do something to misconfigure it.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…